From 1e8c11c564ccdc9bb8966bdde20a5000115f7d9d Mon Sep 17 00:00:00 2001 From: Hare Date: Fri, 29 May 2026 09:28:31 +0900 Subject: [PATCH] fix: rename installed binaries --- crates/client/src/spawn.rs | 6 ++-- crates/pod/Cargo.toml | 4 +++ crates/pod/src/discovery.rs | 2 +- crates/pod/src/main.rs | 48 ++++++++++++++++++++---------- crates/pod/src/spawn/tool.rs | 7 +++-- crates/pod/tests/spawn_pod_test.rs | 2 +- crates/tui/Cargo.toml | 4 +++ crates/tui/src/main.rs | 18 +++++------ crates/tui/src/multi_pod.rs | 2 +- crates/tui/src/picker.rs | 6 ++-- crates/tui/src/spawn.rs | 8 ++--- devshell.nix | 6 ++-- docs/nix.md | 18 +++++------ docs/plan/network-peering.md | 8 ++--- docs/pod-factory.md | 14 ++++----- docs/tui-keybindings.md | 2 +- flake.nix | 6 ++-- package.nix | 12 ++++---- 18 files changed, 99 insertions(+), 74 deletions(-) diff --git a/crates/client/src/spawn.rs b/crates/client/src/spawn.rs index d19f7ed4..de154f92 100644 --- a/crates/client/src/spawn.rs +++ b/crates/client/src/spawn.rs @@ -1,4 +1,4 @@ -//! pod バイナリをサブプロセスとして立ち上げ、`INSOMNIA-READY` を待つ +//! `insomnia-pod` バイナリをサブプロセスとして立ち上げ、`INSOMNIA-READY` を待つ //! ハンドシェイク。 //! //! - 親プロセス (TUI / GUI / E2E) は overlay TOML を組み立ててこの関数に @@ -258,7 +258,7 @@ async fn drain_stderr_into_tail(stderr_path: &Path, tail: &mut StderrTail, offse } /// Resolves the binary used to launch a child Pod. Must point at a -/// `pod`-compatible executable — the parent reads the child's stderr +/// `insomnia-pod`-compatible executable — the parent reads the child's stderr /// directly looking for `INSOMNIA-READY`, so any wrapper that emits /// extra lines on stderr will pollute that handshake. /// @@ -271,7 +271,7 @@ fn resolve_pod_command() -> PathBuf { { return PathBuf::from(cmd); } - PathBuf::from("pod") + PathBuf::from("insomnia-pod") } struct StderrTail { diff --git a/crates/pod/Cargo.toml b/crates/pod/Cargo.toml index 350ad92d..1ac1fa50 100644 --- a/crates/pod/Cargo.toml +++ b/crates/pod/Cargo.toml @@ -4,6 +4,10 @@ version = "0.1.0" edition.workspace = true license.workspace = true +[[bin]] +name = "insomnia-pod" +path = "src/main.rs" + [dependencies] async-trait = { workspace = true } clap = { version = "4.6.0", features = ["derive"] } diff --git a/crates/pod/src/discovery.rs b/crates/pod/src/discovery.rs index 354cf88a..96a0b871 100644 --- a/crates/pod/src/discovery.rs +++ b/crates/pod/src/discovery.rs @@ -596,7 +596,7 @@ fn resolve_pod_command() -> PathBuf { { return PathBuf::from(cmd); } - PathBuf::from("pod") + PathBuf::from("insomnia-pod") } #[derive(Debug, Deserialize, JsonSchema)] diff --git a/crates/pod/src/main.rs b/crates/pod/src/main.rs index 2aef3c77..768cd248 100644 --- a/crates/pod/src/main.rs +++ b/crates/pod/src/main.rs @@ -9,7 +9,7 @@ use session_store::{FsStore, PodMetadataStore, SegmentId, Store}; #[derive(Debug, Parser)] #[command( - name = "pod", + name = "insomnia-pod", about = "Spawn a Pod process from manifest layers or a single manifest file" )] struct Cli { @@ -364,19 +364,25 @@ permission = "write" #[test] fn user_manifest_flag_is_not_accepted() { - let err = Cli::try_parse_from(["pod", "--user-manifest", "manifest.toml"]).unwrap_err(); + let err = + Cli::try_parse_from(["insomnia-pod", "--user-manifest", "manifest.toml"]).unwrap_err(); assert_eq!(err.kind(), clap::error::ErrorKind::UnknownArgument); } #[test] fn manifest_conflicts_with_project_and_overlay() { - let project_err = - Cli::try_parse_from(["pod", "--manifest", "manifest.toml", "--project", "."]) - .unwrap_err(); + let project_err = Cli::try_parse_from([ + "insomnia-pod", + "--manifest", + "manifest.toml", + "--project", + ".", + ]) + .unwrap_err(); assert_eq!(project_err.kind(), clap::error::ErrorKind::ArgumentConflict); let overlay_err = Cli::try_parse_from([ - "pod", + "insomnia-pod", "--manifest", "manifest.toml", "--overlay", @@ -391,7 +397,8 @@ permission = "write" let tmp = TempDir::new().unwrap(); let manifest = tmp.path().join("manifest.toml"); write(&manifest, &manifest_toml("single", tmp.path())); - let cli = Cli::try_parse_from(["pod", "--manifest", manifest.to_str().unwrap()]).unwrap(); + let cli = Cli::try_parse_from(["insomnia-pod", "--manifest", manifest.to_str().unwrap()]) + .unwrap(); let err = resolve_manifest_with_user_manifest_env(&cli, Some(OsString::from("user.toml"))) .unwrap_err(); @@ -405,7 +412,8 @@ permission = "write" let tmp = TempDir::new().unwrap(); let manifest = tmp.path().join("manifest.toml"); write(&manifest, &manifest_toml("single", tmp.path())); - let cli = Cli::try_parse_from(["pod", "--manifest", manifest.to_str().unwrap()]).unwrap(); + let cli = Cli::try_parse_from(["insomnia-pod", "--manifest", manifest.to_str().unwrap()]) + .unwrap(); let (manifest, loader) = resolve_manifest_with_user_manifest_env(&cli, Some(OsString::new())).unwrap(); @@ -422,8 +430,12 @@ permission = "write" write(&user_manifest, &manifest_toml("from-env", tmp.path())); let no_project_root = tmp.path().join("no-project"); std::fs::create_dir_all(&no_project_root).unwrap(); - let cli = - Cli::try_parse_from(["pod", "--project", no_project_root.to_str().unwrap()]).unwrap(); + let cli = Cli::try_parse_from([ + "insomnia-pod", + "--project", + no_project_root.to_str().unwrap(), + ]) + .unwrap(); let (manifest, _loader) = resolve_manifest_with_user_manifest_env( &cli, @@ -438,8 +450,8 @@ permission = "write" fn pod_flag_conflicts_with_session() { let segment_id = session_store::new_segment_id(); let segment_id = segment_id.to_string(); - let err = - Cli::try_parse_from(["pod", "--pod", "agent", "--session", &segment_id]).unwrap_err(); + let err = Cli::try_parse_from(["insomnia-pod", "--pod", "agent", "--session", &segment_id]) + .unwrap_err(); assert_eq!(err.kind(), clap::error::ErrorKind::ArgumentConflict); } @@ -449,7 +461,7 @@ permission = "write" let manifest = tmp.path().join("manifest.toml"); write(&manifest, &manifest_toml("from-file", tmp.path())); let cli = Cli::try_parse_from([ - "pod", + "insomnia-pod", "--manifest", manifest.to_str().unwrap(), "--pod", @@ -471,7 +483,7 @@ permission = "write" &manifest_toml("unused", tmp.path()).replace("name = \"unused\"\n", ""), ); let cli = Cli::try_parse_from([ - "pod", + "insomnia-pod", "--manifest", manifest.to_str().unwrap(), "--pod", @@ -491,8 +503,12 @@ permission = "write" write(&single_manifest, &manifest_toml("single-file", tmp.path())); std::fs::create_dir_all(tmp.path().join("prompts")).unwrap(); std::fs::create_dir_all(tmp.path().join(".insomnia").join("prompts")).unwrap(); - let cli = - Cli::try_parse_from(["pod", "--manifest", single_manifest.to_str().unwrap()]).unwrap(); + let cli = Cli::try_parse_from([ + "insomnia-pod", + "--manifest", + single_manifest.to_str().unwrap(), + ]) + .unwrap(); let (manifest, loader) = resolve_manifest_with_user_manifest_env(&cli, None).unwrap(); diff --git a/crates/pod/src/spawn/tool.rs b/crates/pod/src/spawn/tool.rs index 54bff15b..de776a40 100644 --- a/crates/pod/src/spawn/tool.rs +++ b/crates/pod/src/spawn/tool.rs @@ -2,7 +2,7 @@ //! //! Wires pod-registry delegation, overlay-TOML construction, subprocess //! launch, and socket handoff into a single `Tool` implementation. When -//! the LLM calls `SpawnPod`, a fresh `pod` binary is exec'd in its own +//! the LLM calls `SpawnPod`, a fresh `insomnia-pod` binary is exec'd in its own //! process group, the pod-registry is updated atomically, and the child's //! first turn is kicked off by handing its socket a `Method::Run`. @@ -303,7 +303,8 @@ impl SpawnPodTool { overlay_toml: &str, predicted_socket: &Path, ) -> Result<(), ToolError> { - let pod_command = std::env::var("INSOMNIA_POD_COMMAND").unwrap_or_else(|_| "pod".into()); + let pod_command = + std::env::var("INSOMNIA_POD_COMMAND").unwrap_or_else(|_| "insomnia-pod".into()); // Pre-create the child's runtime dir so we have a stable place to // capture its stderr before it has had a chance to bind anything. @@ -381,7 +382,7 @@ fn parse_scope(rules: &[ScopeRuleInput]) -> Result, ToolError> { .collect() } -/// Serialise the overlay TOML that gets handed to the child `pod` +/// Serialise the overlay TOML that gets handed to the child `insomnia-pod` /// binary via `--overlay`. `PodManifestConfig`'s `Serialize` impl is /// the single source of truth for the on-disk manifest format. /// diff --git a/crates/pod/tests/spawn_pod_test.rs b/crates/pod/tests/spawn_pod_test.rs index 0327015a..d60cf71f 100644 --- a/crates/pod/tests/spawn_pod_test.rs +++ b/crates/pod/tests/spawn_pod_test.rs @@ -2,7 +2,7 @@ //! //! These tests exercise the tool's pod-registry delegation, subprocess //! launch, socket handoff, and `spawned_pods.json` write without relying -//! on the real `pod` binary. `INSOMNIA_POD_COMMAND` is pointed at +//! on the real `insomnia-pod` binary. `INSOMNIA_POD_COMMAND` is pointed at //! `/bin/true` (which exits immediately) while a test-owned Unix //! listener pre-binds the predicted socket path, so the tool sees the //! "child" as live. diff --git a/crates/tui/Cargo.toml b/crates/tui/Cargo.toml index 560174ae..997e3e00 100644 --- a/crates/tui/Cargo.toml +++ b/crates/tui/Cargo.toml @@ -4,6 +4,10 @@ version = "0.1.0" edition.workspace = true license.workspace = true +[[bin]] +name = "insomnia" +path = "src/main.rs" + [dependencies] client = { workspace = true } protocol = { workspace = true } diff --git a/crates/tui/src/main.rs b/crates/tui/src/main.rs index 8269a3b2..6d4d4f8a 100644 --- a/crates/tui/src/main.rs +++ b/crates/tui/src/main.rs @@ -61,20 +61,20 @@ fn resolve_socket(pod_name: &str, override_path: Option) -> PathBuf { #[derive(Debug)] enum Mode { Spawn, - /// `tui ` / `tui --pod `: attach to a live Pod by name if - /// possible; otherwise launch `pod --pod ` so the pod process + /// `insomnia ` / `insomnia --pod `: attach to a live Pod by name if + /// possible; otherwise launch `insomnia-pod --pod ` so the pod process /// resumes from name-keyed state or creates a fresh same-name Pod. PodName { pod_name: String, socket_override: Option, }, - /// `tui -r` / `tui --resume`: open the Pod picker, then attach to the + /// `insomnia -r` / `insomnia --resume`: open the Pod picker, then attach to the /// selected live Pod or restore the selected stopped Pod by name. Resume, - /// `tui --session `: skip the picker, go straight to the + /// `insomnia --session `: skip the picker, go straight to the /// resume name dialog with `id` baked in. ResumeWithSession(SegmentId), - /// `tui --multi`: open the multi-Pod dashboard. This is intentionally + /// `insomnia --multi`: open the multi-Pod dashboard. This is intentionally /// separate from `-r`/`--resume`, which keeps its single-Pod picker /// meaning. Multi, @@ -232,18 +232,18 @@ async fn main() -> ExitCode { let mode = match parse_args() { Ok(m) => m, Err(e) => { - eprintln!("tui: {e}"); + eprintln!("insomnia: {e}"); return ExitCode::FAILURE; } }; if let Err(e) = enable_raw_mode() { - eprintln!("tui: failed to enter raw mode: {e}"); + eprintln!("insomnia: failed to enter raw mode: {e}"); return ExitCode::FAILURE; } if let Err(e) = execute!(io::stdout(), EnableBracketedPaste) { let _ = disable_raw_mode(); - eprintln!("tui: {e}"); + eprintln!("insomnia: {e}"); return ExitCode::FAILURE; } @@ -280,7 +280,7 @@ async fn main() -> ExitCode { // duplicate. Other errors (pod-name failures, terminal setup // hiccups, etc.) need surfacing here. if e.downcast_ref::().is_none() { - eprintln!("tui: {e}"); + eprintln!("insomnia: {e}"); } ExitCode::FAILURE } diff --git a/crates/tui/src/multi_pod.rs b/crates/tui/src/multi_pod.rs index d0208d7d..dee73f6d 100644 --- a/crates/tui/src/multi_pod.rs +++ b/crates/tui/src/multi_pod.rs @@ -40,7 +40,7 @@ impl std::fmt::Display for MultiPodError { Self::Store(e) => write!(f, "session store error: {e}"), Self::NoPods => write!( f, - "no pods found — start a fresh pod with `tui` or restore one with `tui -r`" + "no pods found — start a fresh pod with `insomnia` or restore one with `insomnia -r`" ), } } diff --git a/crates/tui/src/picker.rs b/crates/tui/src/picker.rs index c8526f07..51acc21d 100644 --- a/crates/tui/src/picker.rs +++ b/crates/tui/src/picker.rs @@ -2,7 +2,7 @@ //! //! Reads live Pod allocations from the runtime registry and stopped Pod state //! from the session store's name-keyed metadata. Picking a live row attaches to -//! its socket; picking a stopped row restores via `pod --pod `. +//! its socket; picking a stopped row restores via `insomnia-pod --pod `. use std::io; use std::path::PathBuf; @@ -41,7 +41,7 @@ impl std::fmt::Display for PickerError { Self::Store(e) => write!(f, "session store error: {e}"), Self::NoPods => write!( f, - "no pods found — start a fresh pod with `tui` and try again" + "no pods found — start a fresh pod with `insomnia` and try again" ), } } @@ -64,7 +64,7 @@ impl From for PickerError { pub enum PickerOutcome { /// User picked a Pod. `socket_override` is set for live rows when the /// runtime registry knows the exact socket path; stopped rows leave it - /// empty so the caller restores with `pod --pod `. + /// empty so the caller restores with `insomnia-pod --pod `. Picked { pod_name: String, socket_override: Option, diff --git a/crates/tui/src/spawn.rs b/crates/tui/src/spawn.rs index b525f6b0..28124da2 100644 --- a/crates/tui/src/spawn.rs +++ b/crates/tui/src/spawn.rs @@ -1,9 +1,9 @@ //! Inline-viewport "spawn Pod and attach" UX. //! -//! Rendered at the user's current cursor position when `tui` is invoked +//! Rendered at the user's current cursor position when `insomnia` is invoked //! with no positional argument. Walks the cwd for a `.insomnia/manifest.toml` //! to seed defaults, prompts for the Pod's name, and on confirmation -//! launches the `pod` binary as an independent process with a freshly built +//! launches the `insomnia-pod` binary as an independent process with a freshly built //! overlay (name + cwd scope when no project manifest exists). Once //! the process reports its socket via the `INSOMNIA-READY` stderr line, //! the dialog hands control back so main can switch the terminal to @@ -90,7 +90,7 @@ type InlineTerminal = Terminal>; /// Source session for a resume run. `None` = fresh spawn (current /// behaviour); `Some(id)` swaps the dialog into "Resume Pod" mode and -/// passes `--session ` to the spawned `pod` child. +/// passes `--session ` to the spawned `insomnia-pod` child. pub async fn run(resume_from: Option) -> Result { let defaults = load_spawn_defaults()?; @@ -170,7 +170,7 @@ pub async fn run(resume_from: Option) -> Result` without opening the name dialog. The child Pod +/// Launch `insomnia-pod --pod ` without opening the name dialog. The child Pod /// resolves persisted Pod metadata if present, or creates a fresh same-name Pod /// with the usual TUI cwd-scope fallback. pub async fn run_pod_name(pod_name: String) -> Result { diff --git a/devshell.nix b/devshell.nix index 38a6912d..58fa5dd7 100644 --- a/devshell.nix +++ b/devshell.nix @@ -1,11 +1,11 @@ { pkgs }: let - # Dev-only wrapper. tui の spawn 経路は `pod` バイナリを直に exec し、 + # Dev-only wrapper. tui の spawn 経路は `insomnia-pod` バイナリを直に exec し、 # stderr の `INSOMNIA-READY` 行で握手するので、cargo の進捗や rustc の # warning が混ざると tail に余計な行が積もり本当のエラーが押し出される。 # ここで一度ビルドを切り離し、成功時はビルド出力を一切捨てて素のバイナリ # を exec、失敗時のみ build log を stderr に流して exit する。 - pod-dev = pkgs.writeShellScriptBin "pod" '' + pod-dev = pkgs.writeShellScriptBin "insomnia-pod" '' set -u buildlog=$(mktemp) trap 'rm -f "$buildlog"' EXIT @@ -15,7 +15,7 @@ let fi manifest=$(cargo locate-project --workspace --message-format plain 2>/dev/null) target_dir=''${CARGO_TARGET_DIR:-$(dirname "$manifest")/target} - exec "$target_dir/debug/pod" "$@" + exec "$target_dir/debug/insomnia-pod" "$@" ''; in pkgs.mkShell { diff --git a/docs/nix.md b/docs/nix.md index bf1685e1..e167ab81 100644 --- a/docs/nix.md +++ b/docs/nix.md @@ -10,12 +10,12 @@ From the repository root: nix build .# ``` -The default package is implemented by `package.nix` and builds the Cargo workspace binaries `pod` and `tui`. The derivation uses the checked-in `Cargo.lock`, so Cargo dependencies are fetched by the normal Nix Rust packaging path instead of by network access during the build. +The default package is implemented by `package.nix` and builds the Cargo packages `pod` and `tui` as installed binaries `insomnia-pod` and `insomnia`. The derivation uses the checked-in `Cargo.lock`, so Cargo dependencies are fetched by the normal Nix Rust packaging path instead of by network access during the build. The package output contains: -- `bin/pod` — Pod CLI / runtime process. -- `bin/tui` — terminal UI. +- `bin/insomnia-pod` — Pod CLI / runtime process. +- `bin/insomnia` — terminal UI. - `share/insomnia/resources/` — bundled runtime resources, including `resources/prompts/`. - `share/doc/insomnia/nix.md` — this document. @@ -24,15 +24,15 @@ The package output contains: After `nix build`: ```sh -./result/bin/pod --help -./result/bin/tui +./result/bin/insomnia-pod --help +./result/bin/insomnia ``` With flakes: ```sh -nix run .#tui -nix run .#pod -- --help +nix run .#insomnia +nix run .#insomnia-pod -- --help ``` `nix run .#` defaults to the TUI. @@ -53,8 +53,8 @@ The Nix package does not put user configuration, sessions, sockets, or other mut The package derivation has a credential-free install check that verifies: -- `pod --help` starts successfully. -- `tui` is installed and reaches argument parsing. +- `insomnia-pod --help` starts successfully. +- `insomnia` is installed and reaches argument parsing. - bundled prompt resources and this Nix usage document are present in the output. For full validation before handing changes to review, run: diff --git a/docs/plan/network-peering.md b/docs/plan/network-peering.md index 625569c9..3ff60d83 100644 --- a/docs/plan/network-peering.md +++ b/docs/plan/network-peering.md @@ -172,7 +172,7 @@ unique であれば workspace を指定しなくて済む。 ## Daemon-less リモート Pod 生成(SSH-only モデル) リモートホスト上の Pod 生成は **daemon 無しで SSH だけで成立する**。 -remote 側に必要なのは `pod` バイナリと SSH アクセスのみ。 +remote 側に必要なのは `insomnia-pod` バイナリと SSH アクセスのみ。 ### 前提 @@ -182,7 +182,7 @@ remote 側に必要なのは `pod` バイナリと SSH アクセスのみ。 - insomnia が転送するのは**セッション(会話履歴)と manifest overlay** だけ。コードベースの同期は外部に委ねる - コンテナ内で動かすか bare metal で動かすかも insomnia は問わない。 - `pod` バイナリが動くホストの fs 上で活動する主体がある、 + `insomnia-pod` バイナリが動くホストの fs 上で活動する主体がある、 それだけが前提 ### フロー @@ -193,7 +193,7 @@ host_a (spawner) host_b (remote) │ ├── ssh: session データを転送 ────────→ ファイル書き込み ├── ssh: overlay TOML を転送 ─────────→ ファイル書き込み - ├── ssh: `pod --overlay ... &` ───────→ Pod プロセス起動、socket 作成 + ├── ssh: `insomnia-pod --overlay ... &` ───────→ Pod プロセス起動、socket 作成 ├── ssh -L: socket を tunnel ─────────→ Pod B の unix socket │ └── localhost:tunnel に接続 ──────────→ Method::Run / Event stream @@ -209,7 +209,7 @@ tar cz session/ | ssh insomnia@host-b "tar xz -C ~/workspaces/task-123/store" echo "$OVERLAY" | ssh insomnia@host-b "cat > ~/workspaces/task-123/overlay.toml" # 2. Pod を起動(detach) -ssh insomnia@host-b "pod --store ~/workspaces/task-123/store \ +ssh insomnia@host-b "insomnia-pod --store ~/workspaces/task-123/store \ --overlay ~/workspaces/task-123/overlay.toml &" # 3. socket を tunnel で引っ張る diff --git a/docs/pod-factory.md b/docs/pod-factory.md index 6c133f3b..bdc36c96 100644 --- a/docs/pod-factory.md +++ b/docs/pod-factory.md @@ -56,7 +56,7 @@ manifest 中のパス(`model.auth.file` / `scope.*.target` / Pod の作業ディレクトリは manifest に含まれない。プロセス起動時の `std::env::current_dir()` がそのまま Pod の pwd となるため、別の作業 -ディレクトリで Pod を走らせたい場合は `cd` してから `pod` を起動する +ディレクトリで Pod を走らせたい場合は `cd` してから `insomnia-pod` を起動する (または `SpawnPod` が子に対して行っているように、親プロセス側で `Command::current_dir` を明示する)。 @@ -297,12 +297,12 @@ import-map 形式のプレフィックスで指定する: --- -## `pod` CLI +## `insomnia-pod` CLI -`pod` は通常、builtin default → user manifest → project manifest → overlay の cascade で manifest を解決して起動する。 +`insomnia-pod` は通常、builtin default → user manifest → project manifest → overlay の cascade で manifest を解決して起動する。 ``` -pod [--project ] [--overlay ] [-s/--store ] [--session ] +insomnia-pod [--project ] [--overlay ] [-s/--store ] [--session ] ``` | フラグ | 説明 | @@ -323,15 +323,15 @@ user manifest は CLI フラグではなく、以下の規則で解決する。 単一ファイルだけで起動したい場合は cascade を使わず、`--manifest` を指定する。 ``` -pod --manifest [-s/--store ] [--session ] +insomnia-pod --manifest [-s/--store ] [--session ] ``` `--manifest` は指定 TOML 1 枚だけを `PodManifest::from_toml` で読み、user / project / overlay layer は一切読まない。したがって `--project`、`--overlay`、非空の `INSOMNIA_USER_MANIFEST` とは併用不可。 spawn 子 Pod 用の内部フラグとして `--adopt` と `--callback ` がある。これらは `SpawnPod` が scope allocation と親 callback socket を引き継がせるために使うもので、通常の手動起動では使わない。 -Pod の作業ディレクトリは `pod` 起動時の cwd が直接使われる。別ディレクトリで -動かしたい場合は `cd && pod ...` のように外側で `cd` してから起動する。 +Pod の作業ディレクトリは `insomnia-pod` 起動時の cwd が直接使われる。別ディレクトリで +動かしたい場合は `cd && insomnia-pod ...` のように外側で `cd` してから起動する。 引数無しで起動すると、cwd + `manifest::paths` の自動解決だけで動く最小構成になる (overlay 無し、プロジェクトに `.insomnia/manifest.toml` があればそれを使う)。 diff --git a/docs/tui-keybindings.md b/docs/tui-keybindings.md index e00a08ec..62958829 100644 --- a/docs/tui-keybindings.md +++ b/docs/tui-keybindings.md @@ -111,7 +111,7 @@ Running 中に割り込みたい場合、ほとんどのケースで `Ctrl-C`( `Ctrl-X` は Running 中だけ Cancel、Idle / Paused では Shutdown。`Ctrl-C` は Running 中だけ Pod に `Method::Pause` を送り、それ以外では Pod は落とさず TUI プロセスだけ抜ける。`Ctrl-D` は常に Pod へ制御メソッドを送らず TUI プロセスだけ抜ける。 -TUI のダイアログから Pod を起動する経路では、起動した Pod は TUI の子プロセスとして管理・終了されず、独立したプロセスとして残る。TUI 終了後は `tui ` で再接続できる。 +TUI のダイアログから Pod を起動する経路では、起動した Pod は TUI の子プロセスとして管理・終了されず、独立したプロセスとして残る。TUI 終了後は `insomnia ` で再接続できる。 ## 履歴メモ diff --git a/flake.nix b/flake.nix index 38b62d8c..ea13fe22 100644 --- a/flake.nix +++ b/flake.nix @@ -27,9 +27,9 @@ packages.default = insomnia; packages.insomnia = insomnia; - apps.default = mkApp "tui" "Run the INSOMNIA terminal UI"; - apps.tui = mkApp "tui" "Run the INSOMNIA terminal UI"; - apps.pod = mkApp "pod" "Run the INSOMNIA Pod CLI"; + apps.default = mkApp "insomnia" "Run the INSOMNIA terminal UI"; + apps.insomnia = mkApp "insomnia" "Run the INSOMNIA terminal UI"; + apps.insomnia-pod = mkApp "insomnia-pod" "Run the INSOMNIA Pod CLI"; checks.default = insomnia; diff --git a/package.nix b/package.nix index 07ba9312..170d56a9 100644 --- a/package.nix +++ b/package.nix @@ -80,13 +80,13 @@ rustPlatform.buildRustPackage rec { installCheckPhase = '' runHook preInstallCheck - "$out/bin/pod" --help >/dev/null - test -x "$out/bin/tui" - if "$out/bin/tui" --session not-a-uuid 2>tui.err; then - echo "tui unexpectedly accepted an invalid --session value" >&2 + "$out/bin/insomnia-pod" --help >/dev/null + test -x "$out/bin/insomnia" + if "$out/bin/insomnia" --session not-a-uuid 2>insomnia.err; then + echo "insomnia unexpectedly accepted an invalid --session value" >&2 exit 1 fi - grep -q "invalid --session UUID" tui.err + grep -q "invalid --session UUID" insomnia.err test -d "$out/share/insomnia/resources/prompts" test -f "$out/share/doc/insomnia/nix.md" @@ -97,7 +97,7 @@ rustPlatform.buildRustPackage rec { meta = { description = "Agentic coding Pod runtime and terminal UI"; license = lib.licenses.mit; - mainProgram = "tui"; + mainProgram = "insomnia"; platforms = lib.platforms.unix; }; }