3.1 KiB
3.1 KiB
| id | slug | title | status | kind | priority | labels | created_at | updated_at | assignee | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 20260531-045034-spawn-through-insomnia-pod-subcommand | spawn-through-insomnia-pod-subcommand | CLI: spawn Pods through insomnia pod runtime | closed | task | P2 |
|
2026-05-31T04:50:34Z | 2026-05-31T05:27:04Z | null |
Background
Parent/umbrella ticket: single-binary-insomnia-cli.
insomnia-pod-subcommand-runtime added insomnia pod ... as a Pod runtime entrypoint while keeping the old insomnia-pod binary as a temporary thin wrapper. Internal Pod spawning and restore paths still default to invoking insomnia-pod as an executable-only command.
The next single-binary migration step is to make internal callers able to spawn Pod runtime processes via program + prefix_args, and then switch the default runtime command to the current insomnia executable with pod as the prefix argument.
Requirements
- Introduce a typed Pod runtime command representation instead of shell-string parsing.
- Example shape:
{ program: PathBuf, prefix_args: Vec<OsString> }. - The default command from the
insomniabinary should becurrent_exe()+podprefix args. - Preserve an explicit override mechanism for development/debugging, but do not parse arbitrary shell command strings.
- Example shape:
- Switch internal spawn/restore paths that currently call
insomnia-podto use the typed runtime command:- TUI/create/restore paths in
client/tuiif applicable; SpawnPodchild creation;RestorePod/ discovery restore flows.
- TUI/create/restore paths in
- Preserve detached process behavior and the
INSOMNIA-READYstderr handshake. - Preserve devshell/Nix behavior enough that local development still works.
- If
insomnia-podis still needed for devshell wrapping in this step, document exactly why and leave removal to the next ticket.
- If
- Keep
insomnia-podinstalled output/package removal out of this ticket unless the migration is already complete and validation is straightforward. - Do not rename the
tuipackage/crate. - Do not merge Pod controller into the TUI process.
Non-goals
- Removing
insomnia-podfrom Nix/package outputs as the primary goal. That is the next cleanup once runtime spawning no longer depends on it. - Changing Pod runtime flags or profile/manifest semantics.
- Changing Pod protocol.
- Large CLI UX redesign.
Acceptance criteria
- Internal default Pod runtime spawn/restore commands use
insomnia pod ...through a typedprogram + prefix_argsrepresentation. INSOMNIA_POD_COMMANDor any equivalent override remains safe and documented, or is replaced by a typed override with clear behavior.- Existing Pod spawning/restore tests pass, with focused tests proving prefix args are included in the spawned command.
insomnia pod --helpand existinginsomnia-pod --helpcontinue to work while the temporary wrapper remains.SpawnPodandRestorePodbehavior is unchanged from the user/tool perspective.- Follow-up for removing
insomnia-podpackaging is recorded if not completed here. cargo fmt --check, focused client/pod/tui tests,cargo check -p client -p pod -p tui,./tickets.sh doctor, andgit diff --checkpass.