test(qa-pty): retarget harness at codewhale-tui binary

The qa_pty integration tests booted the canonical TUI via
`Harness::cargo_bin("deepseek-tui")`. After the previous commit
renamed the canonical bin to `codewhale-tui` and made `deepseek-tui`
a tiny deprecation shim that forwards to it via PATH, those tests
launched the shim and hung waiting for a TUI frame because the
sealed PATH in the test sandbox has no `codewhale-tui`.

Point the harness at `cargo_bin("codewhale-tui")` directly. Also
add a `CARGO_BIN_EXE_codewhale-tui` compile-time fallback in the
harness so older Cargo versions still work, alongside the existing
legacy `deepseek-tui` fallback.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hunter Bown
2026-05-23 11:11:11 -05:00
parent 3efa6aad7d
commit 8da9fb7d52
3 changed files with 9 additions and 3 deletions
+2 -2
View File
@@ -38,7 +38,7 @@ fn boot_minimal_without_retry() -> anyhow::Result<(qa_harness::harness::SealedWo
fn spawn_minimal(
ws: qa_harness::harness::SealedWorkspace,
) -> anyhow::Result<(qa_harness::harness::SealedWorkspace, Harness)> {
let h = Harness::builder(Harness::cargo_bin("deepseek-tui"))
let h = Harness::builder(Harness::cargo_bin("codewhale-tui"))
.cwd(ws.workspace())
.seal_home(ws.home())
// Provide a stub key so the onboarding screen is bypassed and the TUI
@@ -165,7 +165,7 @@ fn skills_menu_shows_local_and_global_skills() -> anyhow::Result<()> {
"Workspace beta skill",
)?;
let mut h = Harness::builder(Harness::cargo_bin("deepseek-tui"))
let mut h = Harness::builder(Harness::cargo_bin("codewhale-tui"))
.cwd(ws.workspace())
.seal_home(ws.home())
.env("DEEPSEEK_API_KEY", "ci-test-key-not-real")
@@ -46,7 +46,7 @@ spin up a PTY just to assert a function returns the right value.
3. Spawn:
```rust
let mut h = Harness::builder(Harness::cargo_bin("deepseek-tui"))
let mut h = Harness::builder(Harness::cargo_bin("codewhale-tui"))
.cwd(ws.workspace())
.seal_home(ws.home())
.env("DEEPSEEK_API_KEY", "ci-test-key")
@@ -221,6 +221,12 @@ impl Harness {
if let Some(path) = std::env::var_os(&key) {
return PathBuf::from(path);
}
if name == "codewhale-tui"
&& let Some(path) = option_env!("CARGO_BIN_EXE_codewhale-tui")
{
return PathBuf::from(path);
}
// Legacy fallback for callers still referencing the old bin name.
if name == "deepseek-tui"
&& let Some(path) = option_env!("CARGO_BIN_EXE_deepseek-tui")
{