fix(cmux-next): the R-DAEMON-STATE input lane switch reaches the daemon (CMUX_NEXT_TUI_RDS_INPUT)
Summary
The app strips every inherited CMUX* variable that is not a CMUX_NEXT_* launch knob (LaunchIdentity.stripInheritedEnvironment), so the daemon it launches never sees CMUX_TUI_RDS_INPUT, the R-DAEMON-STATE stage S1 switch (#34014: the person's key takes no client registry or session lock). Without this line a typing A/B on the real app (typing-load-l6, switch off vs on) measures the old path in both arms.
One table line in DaemonDiagnosticKnobs: CMUX_NEXT_TUI_RDS_INPUT reaches the daemon as CMUX_TUI_RDS_INPUT, as the flow-trace, debug-span and host-model knobs do. Default off: with no knob set nothing changes. The line goes with the switch when the stage passes (handoff/rewrites/R-DAEMON-STATE/DESIGN.md section 3).
Testing
Red then green with the same focused fleet suite (DaemonDiagnosticKnobsTests):
- Red at 851c164524f (
test/rds-s1-knob-red-never-merge: this head with the knob line reverted): fleet step f63a7b7bbbc8bb841d665b13 (cmux12),theInputLaneSwitchReachesTheDaemonfailed:Expectation failed: (knobs.daemonEnvironment → [:]) == ["CMUX_TUI_RDS_INPUT": "1"](DaemonDiagnosticKnobsTests.swift:29); the other 3 tests passed. - Green at the head 83fba925722 (feat merged after #34053): fleet step aefe2a32b8838e47be9910e3 (aws-m4pro-4),
DaemonDiagnosticKnobsTests4 of 4 passed,theInputLaneSwitchReachesTheDaemonamong them.
Compile: fleet job 8fac3ec5fc2fb91fd6b25a79 at 83fba925722 passed (CmuxNext 374 s, app 97 s, cmux-tui 55 s). The first compile 2b414e6000f7 at 754a4bff5b2 failed only on the feat base red acpmux/src/hub/bg_tasks.rs:160 (fixed by #34053).
Observed / Not run
- Observed: the fleet steps above.
- Not run: the real-app A/B itself (that is the next step, with the measurement owner, once #34014 and this land).
Changelog
none
Proof
No capture: a launch environment knob for a default-off daemon switch, no UI.
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
The app strips inherited CMUX* variables that aren't CMUX_NEXT_* launch knobs, so the R-DAEMON-STATE input lane switch never reached the daemon and typing A/Bs on the real app measured the old path in both arms. Adds a DaemonDiagnosticKnobs line mapping CMUX_NEXT_TUI_RDS_INPUT to CMUX_TUI_RDS_INPUT, default off so nothing changes without the knob, plus a test.