muuuuse 2.3.1 → 2.3.3

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # 🔌Muuuuse
2
2
 
3
- `🔌Muuuuse` is a tiny no-tmux terminal relay.
3
+ `🔌Muuuuse` is a tiny terminal relay.
4
4
 
5
5
  It does one job:
6
6
  - arm terminal one with `muuuuse 1`
@@ -76,12 +76,10 @@ muuuuse stop
76
76
 
77
77
  ## Notes
78
78
 
79
- - no tmux
80
79
  - state lives under `~/.muuuuse`
81
80
  - only the signed armed pair can exchange relay events
82
81
  - `continue <seat>` is a separate local forwarding lane and can target any armed seat number
83
82
  - supported relay detection is built for Codex, Claude, and Gemini
84
- - `codeman` remains the larger transport/control layer; `muuuuse` stays local and minimal
85
83
 
86
84
  ## Install
87
85
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "muuuuse",
3
- "version": "2.3.1",
3
+ "version": "2.3.3",
4
4
  "description": "🔌Muuuuse arms regular terminals in isolated pairs and can continue relay output into any other armed seat.",
5
5
  "type": "commonjs",
6
6
  "bin": {
package/src/runtime.js CHANGED
@@ -56,6 +56,32 @@ const CHILD_ENV_DROP_KEYS = [
56
56
  "CODEX_THREAD_ID",
57
57
  ];
58
58
 
59
+ function bestEffortEnableChildEcho(child) {
60
+ const ptsName = String(child?.ptsName || "").trim();
61
+ if (!ptsName || process.platform === "win32") {
62
+ return;
63
+ }
64
+
65
+ try {
66
+ execFileSync("stty", [
67
+ "-F",
68
+ ptsName,
69
+ "echo",
70
+ "icanon",
71
+ "isig",
72
+ "iexten",
73
+ "echoe",
74
+ "echok",
75
+ "echoke",
76
+ "echoctl",
77
+ ], {
78
+ stdio: "ignore",
79
+ });
80
+ } catch {
81
+ // Best effort only. The shell or child app may later change its own tty mode.
82
+ }
83
+ }
84
+
59
85
  function normalizeFlowMode(flowMode) {
60
86
  return String(flowMode || "").trim().toLowerCase() === "on" ? "on" : "off";
61
87
  }
@@ -874,6 +900,7 @@ class ArmedSeat {
874
900
  env: childEnv,
875
901
  name: childEnv.TERM,
876
902
  });
903
+ bestEffortEnableChildEcho(this.child);
877
904
 
878
905
  this.childPid = this.child.pid;
879
906
  this.writeMeta();
package/src/util.js CHANGED
@@ -311,7 +311,6 @@ function usage() {
311
311
  " 9. Run `muuuuse status` or `muuuuse stop` from any shell.",
312
312
  "",
313
313
  "Notes:",
314
- " - No tmux.",
315
314
  " - `muuuuse stop` and `muuuuse status` work from another terminal or the same one.",
316
315
  " - State lives under `~/.muuuuse`.",
317
316
  ].join("\n");