@ictechgy/lterm 1.0.1 → 1.0.2

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.ko.md CHANGED
@@ -15,6 +15,7 @@
15
15
 
16
16
  > **보안 모델:** `lterm`은 같은 OS 사용자 안에서 쓰는 편의용 데몬이며 샌드박스가 아닙니다. 다른 사용자의 Unix socket 접근은 거부하고 런타임 디렉터리는 소유자 전용 권한으로 만들지만, 같은 OS 사용자 권한으로 실행되는 프로세스는 세션을 제어할 수 있다고 보아야 합니다.
17
17
  > 전체 trust boundary와 audit policy는 [SECURITY.md](SECURITY.md)를 참고하세요.
18
+ > Non-goals(의도적으로 지원하지 않는 항목)는 [docs/non-goals.md](docs/non-goals.md)를 참고하세요.
18
19
 
19
20
  ## 왜 tmux 대신 lterm인가요?
20
21
 
@@ -70,7 +71,7 @@ Homebrew와 npm 모두 `PATH`에 `lterm` 명령을 설치합니다. `lterm --ver
70
71
  GitHub에서 Cargo로 설치 (Releases 페이지의 최신 태그를 사용하세요):
71
72
 
72
73
  ```bash
73
- cargo install --git https://github.com/ictechgy/light_terminal --tag v1.0.1
74
+ cargo install --git https://github.com/ictechgy/light_terminal --tag v1.0.2
74
75
  ```
75
76
 
76
77
  저장소를 클론한 뒤 직접 빌드하려면 Rust 1.85 이상이 필요합니다.
package/README.md CHANGED
@@ -15,6 +15,7 @@
15
15
 
16
16
  > **Security model:** `lterm` is a same-user convenience daemon, not a sandbox. It rejects cross-user Unix-socket peers and uses owner-only runtime directories, but any process running as your OS user should be considered capable of controlling your sessions.
17
17
  > See [SECURITY.md](SECURITY.md) for the full trust-boundary and audit policy details.
18
+ > Non-goals: see [docs/non-goals.md](docs/non-goals.md).
18
19
 
19
20
  ## Why lterm instead of plain tmux?
20
21
 
@@ -75,7 +76,7 @@ For the 1.0 command/output stability boundary, see the
75
76
  With Cargo from GitHub (use the latest tag from the Releases page):
76
77
 
77
78
  ```bash
78
- cargo install --git https://github.com/ictechgy/light_terminal --tag v1.0.1
79
+ cargo install --git https://github.com/ictechgy/light_terminal --tag v1.0.2
79
80
  ```
80
81
 
81
82
  From this checkout, use Rust 1.85 or newer:
@@ -97,10 +98,14 @@ To expose the tmux shim:
97
98
  lterm install-shim
98
99
  # Add the printed directory to PATH ahead of the real tmux, or eval the helper:
99
100
  eval "$(lterm env)"
101
+ # fish:
102
+ lterm env --shell fish | source
100
103
  ```
101
104
 
102
105
  ## Quick start
103
106
 
107
+ ![lterm quick demo](docs/assets/lterm-demo.svg)
108
+
104
109
  **Create a persistent session and attach immediately:**
105
110
 
106
111
  ```bash
@@ -139,6 +144,7 @@ lterm -a api
139
144
  | Write input to a PTY | `lterm input api 'echo hello' --enter` | `send` |
140
145
  | Stop a session | `lterm close api` | `kill` |
141
146
  | Diagnose daemon and shim state | `lterm doctor --json` | `status` |
147
+ | Preview local setup steps | `lterm init --shell zsh` | None |
142
148
  | Run the background daemon explicitly | `lterm daemon` | None |
143
149
  | Stop the daemon and all sessions | `lterm shutdown` | None |
144
150
 
@@ -149,13 +155,14 @@ Agent and shim utilities are also product CLI commands, not tmux aliases:
149
155
  | Launch a profiled agent session | `lterm agent claude -- --help` | Sibling shortcuts: `lterm claude`, `lterm codex`, `lterm gemini`, `lterm omx`, `lterm omc` |
150
156
  | Inspect available agent profiles | `lterm agents --json` | PATH availability probe at command runtime |
151
157
  | Install the `tmux` compatibility shim | `lterm install-shim` | Creates a shim that forwards to `lterm tmux-compat` |
152
- | Print shell exports for tmux compatibility | `eval "$(lterm env)"` | Emits trusted `export` lines that prepend the shim dir to `$PATH` |
158
+ | Print shell exports for tmux compatibility | `eval "$(lterm env)"` (`lterm env --shell fish \| source` for fish) | Emits trusted shell setup that prepends the shim dir to `$PATH` |
153
159
  | Send a cmux-friendly notification | `lterm notify --title 'Done' --body 'Tests passed'` | OSC 777 fallback strips terminal controls while preserving Unicode text |
154
160
  | Attach to a remote host | `lterm ssh user@host main` | Use trusted hosts; SSH handles host-key checks, and remote PTY bytes pass through without sanitization |
155
161
  | Call the tmux shim namespace directly | `lterm tmux-compat list-commands` | Compatibility namespace, not a product alias table |
156
162
 
157
163
  Use `eval "$(lterm env)"` only when you trust the `lterm` binary on your `PATH`.
158
164
  It emits fixed `export` lines that prepend the shim directory to `$PATH`.
165
+ For fish, use `lterm env --shell fish | source` after the same trust check.
159
166
 
160
167
  `lterm ssh` forwards remote PTY bytes to the local terminal without sanitizing
161
168
  terminal control sequences, so a compromised remote can drive terminal features
@@ -439,6 +446,20 @@ LTERM_RUNTIME_DIR="$TMP/run" LTERM_DATA_DIR="$TMP/data" cargo run -- logs test -
439
446
  LTERM_RUNTIME_DIR="$TMP/run" LTERM_DATA_DIR="$TMP/data" cargo run -- shutdown
440
447
  ```
441
448
 
449
+ Release/contract preflight helpers:
450
+
451
+ ```bash
452
+ scripts/release-preflight.sh --contract-only
453
+ scripts/release-preflight.sh --allow-occupied-skip --skip-audit
454
+ scripts/dependency-minor-dry-run.sh
455
+ ```
456
+
457
+ Use `--run-soak` on `scripts/release-preflight.sh` only for the manual
458
+ release-gate soak profile. Use
459
+ [`docs/release-evidence-template.md`](docs/release-evidence-template.md) to
460
+ capture release, audit, contract, dependency, and soak evidence before tagging or
461
+ publishing.
462
+
442
463
  ## License
443
464
 
444
465
  Licensed under either of:
@@ -0,0 +1,27 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="920" height="420" role="img" aria-labelledby="title desc">
2
+ <title id="title">lterm quick demo</title>
3
+ <desc id="desc">Terminal-style demo showing a detached lterm session, sanitized logs, JSON wait, and resume.</desc>
4
+ <rect width="920" height="420" rx="18" fill="#0b1020"/>
5
+ <rect x="18" y="18" width="884" height="384" rx="14" fill="#111827" stroke="#334155"/>
6
+ <circle cx="46" cy="46" r="7" fill="#ef4444"/>
7
+ <circle cx="70" cy="46" r="7" fill="#f59e0b"/>
8
+ <circle cx="94" cy="46" r="7" fill="#22c55e"/>
9
+ <text x="124" y="52" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="15" fill="#94a3b8">lterm: persistent terminal sessions for agents</text>
10
+ <g font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="16">
11
+ <text x="42" y="94" fill="#38bdf8">$</text>
12
+ <text x="66" y="94" fill="#e5e7eb">lterm start -d -n api -- sh -lc 'echo READY; sleep 60'</text>
13
+ <text x="66" y="124" fill="#a7f3d0">api %0 sh -lc 'echo READY; sleep 60'</text>
14
+
15
+ <text x="42" y="172" fill="#38bdf8">$</text>
16
+ <text x="66" y="172" fill="#e5e7eb">lterm logs api -S=-20</text>
17
+ <text x="66" y="202" fill="#a7f3d0">READY</text>
18
+
19
+ <text x="42" y="250" fill="#38bdf8">$</text>
20
+ <text x="66" y="250" fill="#e5e7eb">lterm wait api --contains READY --json</text>
21
+ <text x="66" y="280" fill="#a7f3d0">{ &quot;target&quot;: &quot;api&quot;, &quot;matched&quot;: true, &quot;timed_out&quot;: false }</text>
22
+
23
+ <text x="42" y="328" fill="#38bdf8">$</text>
24
+ <text x="66" y="328" fill="#e5e7eb">lterm resume api</text>
25
+ <text x="66" y="358" fill="#fbbf24">raw PTY attach resumes the live session</text>
26
+ </g>
27
+ </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ictechgy/lterm",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Lightweight tmux-compatible terminal session daemon with cmux-friendly notifications.",
5
5
  "license": "MIT OR Apache-2.0",
6
6
  "homepage": "https://github.com/ictechgy/light_terminal#readme",
@@ -23,6 +23,7 @@
23
23
  },
24
24
  "files": [
25
25
  "bin/lterm.js",
26
+ "docs/assets/lterm-demo.svg",
26
27
  "README.md",
27
28
  "README.ko.md",
28
29
  "LICENSE",
@@ -30,10 +31,10 @@
30
31
  "LICENSE-MIT"
31
32
  ],
32
33
  "optionalDependencies": {
33
- "lterm-darwin-arm64": "1.0.1",
34
- "lterm-darwin-x64": "1.0.1",
35
- "lterm-linux-arm64": "1.0.1",
36
- "lterm-linux-x64": "1.0.1"
34
+ "lterm-darwin-arm64": "1.0.2",
35
+ "lterm-darwin-x64": "1.0.2",
36
+ "lterm-linux-arm64": "1.0.2",
37
+ "lterm-linux-x64": "1.0.2"
37
38
  },
38
39
  "engines": {
39
40
  "node": ">=16"