tmux-ide 2.9.8 → 2.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/cli.js CHANGED
@@ -12665,7 +12665,7 @@ var require_package = __commonJS({
12665
12665
  "package.json"(exports, module) {
12666
12666
  module.exports = {
12667
12667
  name: "tmux-ide",
12668
- version: "2.9.8",
12668
+ version: "2.9.9",
12669
12669
  description: "The open-source workspace for coding agents: run Claude Code, Codex and other agents in tmux with live status",
12670
12670
  type: "module",
12671
12671
  bin: {
@@ -30879,7 +30879,7 @@ var init_session_channel = __esm({
30879
30879
  this.io.send(`refresh-client -C ${window2.runtimeId}:${cols}x${rows}${this.cellPixelSuffix()}`);
30880
30880
  this.fittedWindows.set(window2.runtimeId, { cols, rows });
30881
30881
  }
30882
- /** Must also run on geometry-owner handoff, before the next owner fits. */
30882
+ /** Remove scoped overrides when a fresh global viewport supersedes them. */
30883
30883
  clearWindowViewports() {
30884
30884
  if (!this.fittedWindows.size) return;
30885
30885
  this.input.flush();
@@ -30890,7 +30890,6 @@ var init_session_channel = __esm({
30890
30890
  }
30891
30891
  /** Toggle whether the retained control client participates in tmux sizing. */
30892
30892
  setGeometryParticipation(active2) {
30893
- if (!active2) this.clearWindowViewports();
30894
30893
  if (this.geometryParticipating === active2) return;
30895
30894
  this.geometryParticipating = active2;
30896
30895
  this.input.flush();
@@ -62558,7 +62557,6 @@ var init_registry2 = __esm({
62558
62557
  scheduler,
62559
62558
  nativeGeometryHysteresisMs,
62560
62559
  onGeometryAuthorityChanged: (clientId) => {
62561
- this.#mirror.clearWindowViewports(this.session);
62562
62560
  this.#mirror.setGeometryParticipation(this.session, clientId !== null);
62563
62561
  },
62564
62562
  onNativeGeometryYieldExpired: () => this.#publishAuthority()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tmux-ide",
3
- "version": "2.9.8",
3
+ "version": "2.9.9",
4
4
  "description": "The open-source workspace for coding agents: run Claude Code, Codex and other agents in tmux with live status",
5
5
  "type": "module",
6
6
  "bin": {
@@ -21,9 +21,9 @@
21
21
  <key>CFBundlePackageType</key>
22
22
  <string>APPL</string>
23
23
  <key>CFBundleShortVersionString</key>
24
- <string>2.9.8</string>
24
+ <string>2.9.9</string>
25
25
  <key>CFBundleVersion</key>
26
- <string>2.9.8</string>
26
+ <string>2.9.9</string>
27
27
  <key>LSMinimumSystemVersion</key>
28
28
  <string>11.0</string>
29
29
  <key>LSUIElement</key>
@@ -10,7 +10,7 @@
10
10
  </data>
11
11
  <key>Resources/Assets.car</key>
12
12
  <data>
13
- l0+pnfS5aykXdUJ9hqLbM8D+kxA=
13
+ SmelhC8h5DucT+rzFXGF+vwuM4M=
14
14
  </data>
15
15
  </dict>
16
16
  <key>files2</key>
@@ -26,7 +26,7 @@
26
26
  <dict>
27
27
  <key>hash2</key>
28
28
  <data>
29
- w7jEtdTuow3Sd//xEnaf1qdzU3Mu7zdDF3IKDCN08Yw=
29
+ jOmbXxbTijoy+G+1Ruyi6wQKiSnUSw3V8mkHnJwyMlg=
30
30
  </data>
31
31
  </dict>
32
32
  </dict>
@@ -940,7 +940,7 @@ export class SessionChannel {
940
940
  this.io.send(`refresh-client -C ${window.runtimeId}:${cols}x${rows}${this.cellPixelSuffix()}`);
941
941
  this.fittedWindows.set(window.runtimeId, { cols, rows });
942
942
  }
943
- /** Must also run on geometry-owner handoff, before the next owner fits. */
943
+ /** Remove scoped overrides when a fresh global viewport supersedes them. */
944
944
  clearWindowViewports() {
945
945
  if (!this.fittedWindows.size)
946
946
  return;
@@ -954,8 +954,9 @@ export class SessionChannel {
954
954
  }
955
955
  /** Toggle whether the retained control client participates in tmux sizing. */
956
956
  setGeometryParticipation(active) {
957
- if (!active)
958
- this.clearWindowViewports();
957
+ // Keep dormant per-window sizes while excluded. Even an ignored client's
958
+ // refresh-client -C window: clear can shrink a detached window to 80x24.
959
+ // Fresh viewport fits replace these sizes; a global fit clears them.
959
960
  if (this.geometryParticipating === active)
960
961
  return;
961
962
  this.geometryParticipating = active;
@@ -791,7 +791,6 @@ class SessionRuntime {
791
791
  scheduler,
792
792
  nativeGeometryHysteresisMs,
793
793
  onGeometryAuthorityChanged: (clientId) => {
794
- this.#mirror.clearWindowViewports(this.session);
795
794
  this.#mirror.setGeometryParticipation(this.session, clientId !== null);
796
795
  },
797
796
  onNativeGeometryYieldExpired: () => this.#publishAuthority(),
@@ -1422,7 +1422,7 @@ export class SessionChannel {
1422
1422
  this.fittedWindows.set(window.runtimeId, { cols, rows });
1423
1423
  }
1424
1424
 
1425
- /** Must also run on geometry-owner handoff, before the next owner fits. */
1425
+ /** Remove scoped overrides when a fresh global viewport supersedes them. */
1426
1426
  clearWindowViewports(): void {
1427
1427
  if (!this.fittedWindows.size) return;
1428
1428
  this.input.flush();
@@ -1435,7 +1435,9 @@ export class SessionChannel {
1435
1435
 
1436
1436
  /** Toggle whether the retained control client participates in tmux sizing. */
1437
1437
  setGeometryParticipation(active: boolean): void {
1438
- if (!active) this.clearWindowViewports();
1438
+ // Keep dormant per-window sizes while excluded. Even an ignored client's
1439
+ // refresh-client -C window: clear can shrink a detached window to 80x24.
1440
+ // Fresh viewport fits replace these sizes; a global fit clears them.
1439
1441
  if (this.geometryParticipating === active) return;
1440
1442
  this.geometryParticipating = active;
1441
1443
  this.input.flush();
@@ -1304,7 +1304,6 @@ class SessionRuntime {
1304
1304
  scheduler,
1305
1305
  nativeGeometryHysteresisMs,
1306
1306
  onGeometryAuthorityChanged: (clientId) => {
1307
- this.#mirror.clearWindowViewports(this.session);
1308
1307
  this.#mirror.setGeometryParticipation(this.session, clientId !== null);
1309
1308
  },
1310
1309
  onNativeGeometryYieldExpired: () => this.#publishAuthority(),