@ictechgy/lterm 1.0.25 → 1.0.26
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 +15 -2
- package/README.md +15 -2
- package/package.json +5 -5
package/README.ko.md
CHANGED
|
@@ -78,7 +78,7 @@ GitHub에서 Cargo로 설치할 때는 release tag를 고정하세요. 아래
|
|
|
78
78
|
README 릴리스 기준이며, 더 최신 tag가 있는지는 Releases 페이지에서 확인하세요:
|
|
79
79
|
|
|
80
80
|
```bash
|
|
81
|
-
cargo install --locked --git https://github.com/ictechgy/light_terminal --tag v1.0.
|
|
81
|
+
cargo install --locked --git https://github.com/ictechgy/light_terminal --tag v1.0.26
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
저장소를 클론한 뒤 직접 빌드하려면 Rust 1.85 이상이 필요합니다.
|
|
@@ -435,11 +435,23 @@ lterm codex --mobile --tail 200 --refresh 1s --read-only
|
|
|
435
435
|
lterm agy --status -- -p "lterm status를 유지해줘"
|
|
436
436
|
```
|
|
437
437
|
|
|
438
|
+
[`mat`](https://github.com/ictechgy/multi-account-tool)도 사용한다면, 지원되는 launcher에서 separator 앞에 `--mat-profile`(canonical) 또는 `--profile`(짧은 UX alias)을 붙여 child command를 일시 profile swap으로 감쌀 수 있습니다.
|
|
439
|
+
|
|
440
|
+
```bash
|
|
441
|
+
lterm claude --profile work -- --help
|
|
442
|
+
lterm codex --mat-profile personal -- exec "이 저장소를 요약해줘"
|
|
443
|
+
lterm claude --profile work -- --profile native
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
이 기능은 lterm session command를 `mat exec <cli> <profile> -- <agent-binary> ...`로 만듭니다. 따라서 mat가 그 세션 안에서 agent child를 실행하기 전에 설정된 account material로 swap한 뒤 원복합니다. 이는 lterm 자체 credential isolation이 아니며, mat의 temporal swap/restore/freshness/per-CLI lock 한계를 그대로 따릅니다. mat wrapper는 mat가 지원하는 built-in allowlist(`claude`, `codex`, `opencode`, `aider`, `goose`, `crush`, `gemini`, `kimi`, `qwen`)에만 의도적으로 열려 있습니다. `agy`, Copilot, Cursor Agent, Jules, Kiro, Amp, OMX/OMC, custom profile, configured profile처럼 blocked/unsupported인 agent는 command resolution 전에 `--mat-profile` / `--profile`을 거부합니다. 현재 지원 계약은 `mat support <cli>`로 확인하세요. Claude 자체 `--profile`처럼 agent-native option을 넘길 때는 두 번째 `--` 뒤에 두어야 lterm이 mat profile selector로 해석하지 않습니다.
|
|
447
|
+
|
|
448
|
+
`--mat-profile`과 별개로, lterm은 client→daemon hop을 건널 때 Codex profile home 신호 하나만 좁게 보존합니다. 실행한 client에 `CODEX_HOME`이 설정되어 있으면 새 세션은 명시적인 session env가 이미 `CODEX_HOME`을 제공하지 않는 한 그 값을 상속합니다. 이는 의도적으로 broad environment forwarding이 아닙니다.
|
|
449
|
+
|
|
438
450
|
Claude/Codex/OpenCode/Copilot/Cursor Agent/Antigravity/Kiro/Jules/Aider/Goose/Amp/Crush/Kimi/Qwen/Gemini/OMX/OMC profile의 기본 attach 정책은 `auto`입니다. 데스크톱에서는 lterm status bar를 끈 raw full-terminal attach를 사용하므로 각 도구의 자체 TUI/status/alternate-screen 렌더링이 그대로 동작합니다. 이후 해당 agent 세션을 `lterm resume` 또는 `lterm open`으로 다시 붙을 때도 같은 row-off 기본값을 유지합니다. Termius 계열 모바일 클라이언트에서는 `auto`가 위에서 설명한 normal-screen transcript로 전환되어 긴 agent 출력을 모바일 기본 scrollback으로 읽을 수 있습니다. raw attach를 강제하려면 `--raw`, transcript를 강제하려면 `--mobile`을 사용하세요. `--status`는 직접 agent launch의 raw 경로에서 lterm status bar를 요청하고, raw launch/profile에서 표시되는 status bar는 `--no-status`로 숨길 수 있습니다. `--status`는 agent 디버깅용 best-effort override라 agent TUI와 충돌할 수 있으며, `--mobile --status`는 mobile transcript가 자체 UI를 소유하므로 raw status row를 만들지 않습니다. agent에 넘길 인자가 lterm launch option처럼 보일 수 있으면 앞에 `--`를 두세요. `lterm agent <name>`은 `PATH`에서 찾을 수 있는 안전한 bare command name이면 바로 동작하므로, 예를 들어 `lterm agent qwen-code`처럼 미래/서드파티 agent도 쓸 수 있습니다. `lterm run -- <command>`는 더 낮은 수준의 tmux-compatible primitive를 직접 쓰고 싶을 때만 사용하세요.
|
|
439
451
|
|
|
440
452
|
Agent launcher는 색상 관련 환경 변수도 host 쪽과 agent child 쪽을 분리해 다룹니다. lterm은 클라이언트나 장기 실행 daemon에 설정된 `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`, `CLICOLOR_FORCE`를 `LTERM_AGENT` metadata가 있는 세션으로는 전달하지 않습니다. 모바일 SSH renderer나 host status 설정이 full-screen agent TUI를 의도치 않게 monochrome 출력으로 고정할 수 있기 때문입니다. 일반 non-agent 세션(`lterm start` / `lterm new` / `lterm run`)은 이 변수들을 계속 child process에 보존하며, lterm 자체 status style도 `NO_COLOR`를 계속 존중합니다.
|
|
441
453
|
|
|
442
|
-
launcher 제어 옵션은 agent의 흔한 short flag(`-c` 등)를 빼앗지 않도록 long-only(`--name`, `--cwd`, `--detach`, `--status`, `--no-status`, `--status-theme`, `--status-color`, `--attach-mode`, `--raw`, `--mobile`, `--tail`, `--refresh`, `--read-only`)입니다. 이 옵션들은 `claude`, `codex`, `opencode`, `copilot`, `cursor-agent`, `agy`, `kiro`, `jules`, `aider`, `goose`, `amp`, `crush`, `kimi`, `qwen`, `gemini`, `omx`, `omc`, `agent <profile>`에 동일하게
|
|
454
|
+
launcher 제어 옵션은 agent의 흔한 short flag(`-c` 등)를 빼앗지 않도록 long-only(`--name`, `--cwd`, `--mat-profile` / `--profile`, `--detach`, `--status`, `--no-status`, `--status-theme`, `--status-color`, `--attach-mode`, `--raw`, `--mobile`, `--tail`, `--refresh`, `--read-only`)입니다. 이 옵션들은 `claude`, `codex`, `opencode`, `copilot`, `cursor-agent`, `agy`, `kiro`, `jules`, `aider`, `goose`, `amp`, `crush`, `kimi`, `qwen`, `gemini`, `omx`, `omc`, `agent <profile>`에 동일하게 적용되지만, `--mat-profile` / `--profile`은 위 mat-supported allowlist에서만 성공합니다. 해당 agent 세션이 이후 attach에서도 특정 lterm status 색을 유지하게 하려면 `--status-theme` / `--status-color`를 사용하세요.
|
|
443
455
|
`--detach`는 각 field의 control character와 Unicode line/paragraph separator를 공백으로 바꾼 `name<TAB>pane<TAB>command`를 출력하며, 나중에 `lterm resume <name>` 또는 호환 이름 `lterm attach <name>`으로 다시 붙으면 됩니다. detach record에는 `--cwd`가 포함되지 않으므로 나중에 필요하면 session을 조회하세요.
|
|
444
456
|
명시한 `--name`은 lterm의 일반 session-name 문법을 따르고 사용 중이지 않아야 합니다. 충돌 시 자동 suffix를 붙이지 않고 conflict error로 실패합니다.
|
|
445
457
|
이름에는 ASCII 문자/숫자와 `.`, `_`, `-`만 사용할 수 있고, `-` 또는 `%`로 시작할 수 없으며, 숫자만으로 이뤄질 수 없고, UUID처럼 보이면 안 되고, 128바이트를 넘을 수 없습니다.
|
|
@@ -655,6 +667,7 @@ PATH="$HOME/.cargo/bin:$PATH" scripts/release-preflight.sh --allow-occupied-skip
|
|
|
655
667
|
scripts/dependency-minor-dry-run.sh
|
|
656
668
|
```
|
|
657
669
|
|
|
670
|
+
기본 `cargo test` suite에는 짧은 automated soak smoke profile이 포함됩니다.
|
|
658
671
|
`scripts/release-preflight.sh`의 `--run-soak`은 manual release-gate soak
|
|
659
672
|
profile에서만 사용하세요. Tagging 또는 publishing 전에 release, toolchain
|
|
660
673
|
provenance, audit, contract, dependency, soak evidence를 남길 때는
|
package/README.md
CHANGED
|
@@ -81,7 +81,7 @@ With Cargo from GitHub, pin a release tag. The example below uses the current
|
|
|
81
81
|
README release; check the Releases page for newer tags:
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
|
-
cargo install --locked --git https://github.com/ictechgy/light_terminal --tag v1.0.
|
|
84
|
+
cargo install --locked --git https://github.com/ictechgy/light_terminal --tag v1.0.26
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
Building from this checkout requires Rust 1.85 or newer:
|
|
@@ -436,11 +436,23 @@ lterm codex --mobile --tail 200 --refresh 1s --read-only
|
|
|
436
436
|
lterm agy --status -- -p "keep lterm status visible"
|
|
437
437
|
```
|
|
438
438
|
|
|
439
|
+
If you also use [`mat`](https://github.com/ictechgy/multi-account-tool), supported launchers can wrap the child command in a temporal profile swap by passing `--mat-profile` (canonical) or `--profile` (shorter UX alias) before the separator:
|
|
440
|
+
|
|
441
|
+
```bash
|
|
442
|
+
lterm claude --profile work -- --help
|
|
443
|
+
lterm codex --mat-profile personal -- exec "summarize this repo"
|
|
444
|
+
lterm claude --profile work -- --profile native
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
The lterm session command becomes `mat exec <cli> <profile> -- <agent-binary> ...`, so mat swaps the configured account material before launching the agent child in that session and restores it afterward. It is not lterm-native credential isolation and it inherits mat's temporal swap, restore, freshness, and per-CLI lock limits. The mat wrapper is intentionally allowlisted to mat-supported built-ins (`claude`, `codex`, `opencode`, `aider`, `goose`, `crush`, `gemini`, `kimi`, and `qwen`); blocked or unsupported agents such as `agy`, Copilot, Cursor Agent, Jules, Kiro, Amp, OMX/OMC, custom profiles, and configured profiles reject `--mat-profile` / `--profile` before command resolution. Use `mat support <cli>` to inspect the current support contract. Put a second `--` before agent-native options such as Claude's own `--profile` so lterm does not treat them as the mat profile selector.
|
|
448
|
+
|
|
449
|
+
Independently of `--mat-profile`, lterm preserves a narrow Codex profile-home signal across the client→daemon hop: if the launching client has `CODEX_HOME` set, new sessions inherit that value unless an explicit session env already provided `CODEX_HOME`. This is intentionally not broad environment forwarding.
|
|
450
|
+
|
|
439
451
|
Known Claude/Codex/OpenCode/Copilot/Cursor Agent/Antigravity/Kiro/Jules/Aider/Goose/Amp/Crush/Kimi/Qwen/Gemini/OMX/OMC profiles default to the `auto` attach policy. On desktop, that means a raw full-terminal attach without the lterm status bar, so the agent's own TUI, status, and alternate-screen rendering stay in control. Reattaching those agent sessions later with `lterm resume` or `lterm open` keeps the same row-off default. On Termius-style mobile clients, `auto` uses the normal-screen transcript described above so long agent output can be reviewed with native mobile scrollback. Use `--raw` to force raw attach, `--mobile` to force transcript attach, `--status` to request the lterm status bar on the raw path during direct agent launch, or `--no-status` to suppress it for any raw launch/profile that would otherwise show it. `--status` is intentionally a best-effort override for agent debugging and can still conflict with agent TUIs; `--mobile --status` does not create a raw status row because mobile transcript owns its own UI. Put `--` before agent arguments that could be parsed as lterm launch options. `lterm agent <name>` also works for any safe bare command name available in `PATH` (for example `lterm agent qwen-code`); use `lterm run -- <command>` only when you want the lower-level tmux-compatible primitive directly.
|
|
440
452
|
|
|
441
453
|
Agent launchers also keep host/application color policy separate from the agent child. Ambient `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`, and `CLICOLOR_FORCE` from the client or long-lived daemon are not forwarded to sessions marked with `LTERM_AGENT`, because mobile SSH or host status preferences can otherwise force full-screen agent TUIs into monochrome output. Ordinary non-agent sessions (`lterm start` / `lterm new` / `lterm run`) still preserve those variables for child processes, and lterm's own status style continues to honor `NO_COLOR`.
|
|
442
454
|
|
|
443
|
-
Launcher controls are long-only (`--name`, `--cwd`, `--detach`, `--status`, `--no-status`, `--status-theme`, `--status-color`, `--attach-mode`, `--raw`, `--mobile`, `--tail`, `--refresh`, `--read-only`) so common agent short flags such as `-c` pass through naturally. They apply uniformly to built-in agent shortcuts such as `claude`, `codex`, `opencode`, `copilot`, `cursor-agent`, `agy`, `kiro`, `jules`, `aider`, `goose`, `amp`, `crush`, `kimi`, `qwen`, `gemini`, `omx`, `omc`, and `agent <profile
|
|
455
|
+
Launcher controls are long-only (`--name`, `--cwd`, `--mat-profile` / `--profile`, `--detach`, `--status`, `--no-status`, `--status-theme`, `--status-color`, `--attach-mode`, `--raw`, `--mobile`, `--tail`, `--refresh`, `--read-only`) so common agent short flags such as `-c` pass through naturally. They apply uniformly to built-in agent shortcuts such as `claude`, `codex`, `opencode`, `copilot`, `cursor-agent`, `agy`, `kiro`, `jules`, `aider`, `goose`, `amp`, `crush`, `kimi`, `qwen`, `gemini`, `omx`, `omc`, and `agent <profile>`, though `--mat-profile` / `--profile` only succeeds for the mat-supported allowlist above. Use `--status-theme` / `--status-color` on agent launches when you want that session to keep a specific lterm status color across future attaches.
|
|
444
456
|
`--detach` prints `name<TAB>pane<TAB>command` with control characters and Unicode line/paragraph separators in each field replaced by spaces; resume later with `lterm resume <name>` or compatibility name `lterm attach <name>`. The detach record does not echo `--cwd`; query the session if you need to inspect it later.
|
|
445
457
|
Explicit `--name` values use lterm's normal session-name syntax and must not already be in use; they do not auto-suffix on conflict, so an in-use name fails with a conflict error.
|
|
446
458
|
Names may contain ASCII letters, digits, `.`, `_`, and `-`, must not start with `-` or `%`, must not consist only of digits, must not look like a UUID, and are limited to 128 bytes.
|
|
@@ -646,6 +658,7 @@ PATH="$HOME/.cargo/bin:$PATH" scripts/release-preflight.sh --allow-occupied-skip
|
|
|
646
658
|
scripts/dependency-minor-dry-run.sh
|
|
647
659
|
```
|
|
648
660
|
|
|
661
|
+
The default `cargo test` suite includes a short automated soak smoke profile.
|
|
649
662
|
Use `--run-soak` on `scripts/release-preflight.sh` only for the manual
|
|
650
663
|
release-gate soak profile. Use
|
|
651
664
|
[`docs/release-evidence-template.md`](docs/release-evidence-template.md) to
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ictechgy/lterm",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.26",
|
|
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",
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
"scripts/validate_npm_packages.mjs"
|
|
37
37
|
],
|
|
38
38
|
"optionalDependencies": {
|
|
39
|
-
"lterm-darwin-arm64": "1.0.
|
|
40
|
-
"lterm-darwin-x64": "1.0.
|
|
41
|
-
"lterm-linux-arm64": "1.0.
|
|
42
|
-
"lterm-linux-x64": "1.0.
|
|
39
|
+
"lterm-darwin-arm64": "1.0.26",
|
|
40
|
+
"lterm-darwin-x64": "1.0.26",
|
|
41
|
+
"lterm-linux-arm64": "1.0.26",
|
|
42
|
+
"lterm-linux-x64": "1.0.26"
|
|
43
43
|
},
|
|
44
44
|
"engines": {
|
|
45
45
|
"node": ">=16"
|