This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

Clean up style and update changelog after #10

Nathan Herald (Apr 9, 2026, 11:21 AM +0200) 91d5ec3f 63be2b34

+15 -4
+7
CHANGELOG.md
··· 1 1 # Changelog 2 2 3 + ## Unreleased 4 + 5 + ### Fixes 6 + - Validate session `cwd` before spawning and surface explicit errors (`Working directory does not exist`, `Working directory is not a directory`, `Working directory is not searchable`) instead of failing silently with exit code 1 or misleading `posix_spawnp failed` messages (#9, #10, thanks @schickling) 7 + - Lazy-load the interactive TUI module so non-interactive CLI commands like `pty list` don't crash with `uv_cwd` when launched from a deleted directory (#9, #10) 8 + - Clarify the `posix_spawnp` error message to mention the actual PTY shell and cwd context instead of blaming the wrapped command 9 + 3 10 ## 0.5.0 4 11 5 12 ### Client API (`@myobie/pty/client`)
+6 -4
src/cli.ts
··· 19 19 import { spawnDaemon, resolveCommand } from "./spawn.ts"; 20 20 import { EventFollower, readRecentEvents, formatEvent } from "./events.ts"; 21 21 22 - const runInteractive = async (): Promise<void> => { 23 - const { runInteractive } = await import("./tui/interactive.ts"); 24 - await runInteractive(); 25 - }; 22 + // Lazy-load the interactive TUI so non-interactive commands don't crash when 23 + // the caller's cwd was deleted (the TUI module evaluates process.cwd() at load). 24 + async function runInteractive(): Promise<void> { 25 + const mod = await import("./tui/interactive.ts"); 26 + await mod.runInteractive(); 27 + } 26 28 27 29 function usage(): void { 28 30 console.log(`Usage:
+2
src/server.ts
··· 74 74 } 75 75 } 76 76 77 + /** Validate that cwd is usable for spawning a process. Returns undefined if 78 + * valid, or a descriptive error string explaining what's wrong. */ 77 79 function describeInvalidCwd(cwd: string): string | undefined { 78 80 if (cwd.length === 0) return "Working directory is empty."; 79 81