v0.1.28
v0.1.28
Internals
scripts/util.ts: unified exec subprocess primitive
The old run() helper (inherit-by-default, returns stdout string) is replaced by exec(), which always captures stdout/stderr, resolves the command on PATH, and returns a structured ExecResult { exitCode, stdout, stderr }. Key improvements:
- Supports piping a string to the child's stdin via
options.input, removing theexecadependency from the Docker-basedexecute_typescripttool and the git tool trio. disableCheckreplaces the oldcheck: falseflag for callers that inspect exit codes themselves.disableWhichskips thePATHlookup when the binary path is already known.bunx()remains a convenience wrapper, returning trimmed stdout.- A new
git()export wrapsexec("git", ...)for scripts that need direct git access.
scripts/tag.ts: cleaner git helpers
Extracted gitRevParse, gitStatus, and gitPush wrappers that use the new exec-based git() export, replacing scattered run("git", [...], { capture: true, check: false }) calls.
scripts/release.ts: migrated to exec
All run() call sites (npm view, bun pm pack, npm publish) now use exec() and read .stdout from the result.
Docstring cleanup across packages
Module-level docstrings in genie-shared, genie, appkit-mastra, appkit-mastra-shared, and shared/http were rewritten to describe purpose and behavior without enumerating exports by name or narrating change history, aligning with the updated docstring-style rule.
Removed execa dependency
The execa package is no longer used anywhere in the repo; the new exec helper covers all subprocess needs natively through Bun.spawn.