ticket: use base32 project record ids
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
---
|
||||
title: "Dev: add Pod runtime executable override env"
|
||||
state: "closed"
|
||||
created_at: "2026-05-31T12:40:40Z"
|
||||
updated_at: "2026-05-31T20:41:56Z"
|
||||
---
|
||||
|
||||
## Background
|
||||
|
||||
During dogfooding, long-running TUI/Pod processes can keep executing an old `target/debug/insomnia` inode after `cargo build` or `cargo clean` replaces/removes the binary. On Linux, `std::env::current_exe()` then returns a path like:
|
||||
|
||||
```text
|
||||
/home/.../target/debug/insomnia (deleted)
|
||||
```
|
||||
|
||||
Current Pod spawn/restore paths use `current_exe() + ["pod"]` as the runtime command, so a long-running process can try to spawn `.../insomnia (deleted) pod` and fail with `No such file or directory`.
|
||||
|
||||
This is primarily a development/dogfooding problem. The previous general-purpose `INSOMNIA_POD_COMMAND` override was intentionally removed; do not restore that semantics. Instead, add a narrow development escape hatch that replaces only the executable used in the standard `insomnia pod ...` runtime command.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Add a narrowly scoped development override environment variable, tentatively `INSOMNIA_POD_RUNTIME_COMMAND`.
|
||||
- Semantics:
|
||||
- if unset/empty, default remains `current_exe() + ["pod"]`;
|
||||
- if set, the value is the executable path used instead of `current_exe()`;
|
||||
- the `pod` prefix argument is still automatically added;
|
||||
- the value is not shell-parsed and cannot include arguments.
|
||||
- Keep this as a development escape hatch, not normal user configuration.
|
||||
- Update diagnostics so a failed spawn shows the resolved runtime command clearly enough to debug deleted-path issues.
|
||||
- Document the variable in `docs/environment.md` under a clearly development-only section.
|
||||
- Do not reintroduce `INSOMNIA_POD_COMMAND` or its old executable-without-prefix semantics.
|
||||
- Do not change Pod runtime flags/profile/manifest/protocol semantics.
|
||||
- This ticket may be implemented before or folded into `insomnia-crate-cli-owner`, but must not create `pod -> insomnia` or `tui -> insomnia` architectural coupling beyond the current transitional state.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- Making environment variables a general configuration mechanism.
|
||||
- Adding shell-string command parsing.
|
||||
- Supporting wrapper commands with arguments.
|
||||
- Solving all hot-reload/self-rebuild lifecycle issues.
|
||||
- Reintroducing the removed `insomnia-pod` binary/alias.
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- Setting `INSOMNIA_POD_RUNTIME_COMMAND=/path/to/insomnia` causes spawn/restore paths to execute `/path/to/insomnia pod ...`.
|
||||
- Unset or empty `INSOMNIA_POD_RUNTIME_COMMAND` preserves the default `current_exe() + ["pod"]` behavior.
|
||||
- Tests cover override, empty-as-unset, and no shell parsing/argument splitting semantics.
|
||||
- Active code/docs do not reference the old `INSOMNIA_POD_COMMAND` name except historical work items.
|
||||
- `docs/environment.md` explains this as a development-only escape hatch for dogfooding/rebuild deleted-exe cases.
|
||||
- `cargo fmt --check`, focused tests for the runtime command helper/spawn paths, `cargo check` for affected crates, `./tickets.sh doctor`, and `git diff --check` pass.
|
||||
@@ -0,0 +1,23 @@
|
||||
Added `INSOMNIA_POD_RUNTIME_COMMAND` as a narrow development escape hatch for dogfooding/self-rebuild cases where `current_exe()` can point at a deleted debug binary.
|
||||
|
||||
Implementation:
|
||||
- Added the override in `client::PodRuntimeCommand`.
|
||||
- Unset/empty values preserve the default `current_exe() + ["pod"]` behavior.
|
||||
- Non-empty values replace only the executable path and still automatically receive the `pod` prefix argument.
|
||||
- The value is not shell-parsed and is not argument-split.
|
||||
- Spawn/restore failure diagnostics include the resolved runtime command.
|
||||
- Documented the variable in `docs/environment.md` as development-only, not normal user configuration.
|
||||
- Did not reintroduce `INSOMNIA_POD_COMMAND` or old executable-without-prefix semantics.
|
||||
|
||||
Review:
|
||||
- External reviewer `dev-pod-runtime-env-reviewer-20260531` approved implementation commit `0031953ed352ba7fae9e798b6aeee1e8ea080816`.
|
||||
- Reviewer noted a non-blocking future improvement: display formatting for runtime commands could quote argv pieces with spaces more clearly.
|
||||
|
||||
Validation after merge:
|
||||
- `cargo fmt --check`
|
||||
- `cargo test -p client runtime_command`
|
||||
- `cargo test -p client`
|
||||
- `cargo check -p client -p pod -p tui -p insomnia` (passed with existing dead-code warnings)
|
||||
- `./tickets.sh doctor`
|
||||
- `git diff --check`
|
||||
- `git grep -n "INSOMNIA_POD_COMMAND" -- ':!work-items' || true` produced no active references.
|
||||
@@ -0,0 +1,72 @@
|
||||
<!-- event: create author: tickets.sh at: 2026-05-31T12:40:40Z -->
|
||||
|
||||
## Created
|
||||
|
||||
Created by tickets.sh create.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: review author: hare at: 2026-05-31T20:41:28Z status: approve -->
|
||||
|
||||
## Review: approve
|
||||
|
||||
External reviewer: `dev-pod-runtime-env-reviewer-20260531`
|
||||
Reviewed implementation commit: `0031953ed352ba7fae9e798b6aeee1e8ea080816` (`dev: add pod runtime command override`)
|
||||
Verdict: approve
|
||||
|
||||
Summary:
|
||||
- Added `INSOMNIA_POD_RUNTIME_COMMAND` as a narrow development-only executable override for the standard `insomnia pod ...` runtime command.
|
||||
- Unset/empty values preserve `current_exe() + ["pod"]`.
|
||||
- Non-empty values replace only the executable path; the `pod` prefix argument is still automatically added.
|
||||
- The value is passed as a single `PathBuf`/program and is not shell-parsed or argument-split.
|
||||
- Diagnostics for failed client spawn/restore include the resolved runtime command.
|
||||
|
||||
Requirements mapping:
|
||||
- Override implementation lives in `client::PodRuntimeCommand`, preserving the post-CLI-owner dependency boundary.
|
||||
- Spawn/restore paths continue to use typed command construction with `Command::new(program)` and prefix args.
|
||||
- `docs/environment.md` documents the env var as a development-only escape hatch, not normal configuration.
|
||||
- Old `INSOMNIA_POD_COMMAND` was not reintroduced and has no active non-work-item refs.
|
||||
- No Pod runtime flag/profile/manifest/protocol semantic changes were found.
|
||||
|
||||
Blockers: none.
|
||||
|
||||
Non-blocking follow-up:
|
||||
- `PodRuntimeCommand::Display` joins argv-like pieces with spaces, so diagnostics can be visually ambiguous when an executable path contains spaces. It is sufficient for this ticket, but a future quoted/structured argv display would be clearer.
|
||||
|
||||
Validation adequacy:
|
||||
- Coder validation covered fmt, focused/full client tests, affected crate check, doctor, diff-check, and old env-name grep.
|
||||
- Reviewer performed read-only diff/source/docs/grep review and did not rerun Cargo tests.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: close author: hare at: 2026-05-31T20:41:56Z status: closed -->
|
||||
|
||||
## Closed
|
||||
|
||||
Added `INSOMNIA_POD_RUNTIME_COMMAND` as a narrow development escape hatch for dogfooding/self-rebuild cases where `current_exe()` can point at a deleted debug binary.
|
||||
|
||||
Implementation:
|
||||
- Added the override in `client::PodRuntimeCommand`.
|
||||
- Unset/empty values preserve the default `current_exe() + ["pod"]` behavior.
|
||||
- Non-empty values replace only the executable path and still automatically receive the `pod` prefix argument.
|
||||
- The value is not shell-parsed and is not argument-split.
|
||||
- Spawn/restore failure diagnostics include the resolved runtime command.
|
||||
- Documented the variable in `docs/environment.md` as development-only, not normal user configuration.
|
||||
- Did not reintroduce `INSOMNIA_POD_COMMAND` or old executable-without-prefix semantics.
|
||||
|
||||
Review:
|
||||
- External reviewer `dev-pod-runtime-env-reviewer-20260531` approved implementation commit `0031953ed352ba7fae9e798b6aeee1e8ea080816`.
|
||||
- Reviewer noted a non-blocking future improvement: display formatting for runtime commands could quote argv pieces with spaces more clearly.
|
||||
|
||||
Validation after merge:
|
||||
- `cargo fmt --check`
|
||||
- `cargo test -p client runtime_command`
|
||||
- `cargo test -p client`
|
||||
- `cargo check -p client -p pod -p tui -p insomnia` (passed with existing dead-code warnings)
|
||||
- `./tickets.sh doctor`
|
||||
- `git diff --check`
|
||||
- `git grep -n "INSOMNIA_POD_COMMAND" -- ':!work-items' || true` produced no active references.
|
||||
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user