Commit a74c602
committed
Server(fix[new_session]): Harden error handling and TMUX env restoration
why: new_session() deletes os.environ["TMUX"] before calling tmux but
only restores it on the success path — any exception permanently leaks
the deletion. Additionally, proc.stdout[0] raises an unhelpful
IndexError if tmux produces no output.
what:
- Wrap all code after del os.environ["TMUX"] in try/finally to ensure
restoration on any exception (including setup-phase errors)
- Guard against empty proc.stdout with descriptive LibTmuxException
- Add tests for empty stdout, TMUX env restoration on cmd errors,
and TMUX env restoration on setup-phase errors
- Document monkeypatch usage in test docstrings per CLAUDE.md1 parent 9da19ba commit a74c602
2 files changed
Lines changed: 123 additions & 28 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
539 | 539 | | |
540 | 540 | | |
541 | 541 | | |
542 | | - | |
543 | | - | |
544 | | - | |
545 | | - | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
546 | 547 | | |
547 | | - | |
548 | | - | |
| 548 | + | |
| 549 | + | |
549 | 550 | | |
550 | | - | |
551 | | - | |
| 551 | + | |
| 552 | + | |
552 | 553 | | |
553 | | - | |
554 | | - | |
555 | | - | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
556 | 557 | | |
557 | | - | |
558 | | - | |
| 558 | + | |
| 559 | + | |
559 | 560 | | |
560 | | - | |
561 | | - | |
| 561 | + | |
| 562 | + | |
562 | 563 | | |
563 | | - | |
564 | | - | |
| 564 | + | |
| 565 | + | |
565 | 566 | | |
566 | | - | |
567 | | - | |
568 | | - | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
569 | 570 | | |
570 | | - | |
571 | | - | |
| 571 | + | |
| 572 | + | |
572 | 573 | | |
573 | | - | |
| 574 | + | |
574 | 575 | | |
575 | | - | |
576 | | - | |
| 576 | + | |
| 577 | + | |
577 | 578 | | |
578 | | - | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
579 | 582 | | |
580 | | - | |
581 | | - | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
582 | 587 | | |
583 | 588 | | |
584 | 589 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
104 | 105 | | |
105 | 106 | | |
106 | 107 | | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
107 | 197 | | |
108 | 198 | | |
109 | 199 | | |
| |||
0 commit comments