From 760190ab05818d0c797ce6cecbfc96f5987a0d48 Mon Sep 17 00:00:00 2001 From: Maximilian Roos Date: Fri, 8 May 2026 11:51:44 -0700 Subject: [PATCH 1/4] Revert "ci(nightly): temporarily disable nix-flake job (#2647)" This reverts commit e93be0e125499f8ddbdb56e3632c31407402731f. --- .github/workflows/nightly.yaml | 62 ++++++++++++++++------------------ 1 file changed, 29 insertions(+), 33 deletions(-) diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml index ca01e3618f..c2f33bb4e1 100644 --- a/.github/workflows/nightly.yaml +++ b/.github/workflows/nightly.yaml @@ -270,39 +270,34 @@ jobs: - name: cargo check run: cargo check --workspace --all-targets - # nix-flake: - # # Build and test under the nix sandbox so packaging-environment bugs - # # surface before a release / nixpkgs maintainer hits them. See #2624 for - # # the canonical example: a unit test that depends on the process CWD - # # being inside a git repo, which fails in the sandbox where source is - # # extracted from a tarball without `.git`. - # # - # # Runs `nix flake check`, which exercises every check defined in - # # flake.nix — in particular `worktrunk-tests`, which runs `cargo test` - # # with default features (lib + bins + integration + doctests; the - # # `shell-integration-tests` feature is intentionally off). Cold builds - # # take ~10-15 min without a binary cache; nightly cadence absorbs it. - # # - # # Temporarily disabled: many sandbox-specific test failures remain - # # (e.g. bare wt_command() inheriting CWD, target/debug-vs-release - # # snapshot hardcoding). Re-enable behind the `nightly` PR label so - # # fixes can iterate without blocking the nightly cron run. - # needs: gate - # if: needs.gate.outputs.run == 'true' - # runs-on: ubuntu-24.04 - # steps: - # - name: 📂 Checkout code - # uses: actions/checkout@v6 - # - # - name: Install Nix - # uses: cachix/install-nix-action@v31 - # with: - # extra_nix_config: | - # experimental-features = nix-command flakes - # access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} - # - # - name: nix flake check - # run: nix flake check --print-build-logs --keep-going + nix-flake: + # Build and test under the nix sandbox so packaging-environment bugs + # surface before a release / nixpkgs maintainer hits them. See #2624 for + # the canonical example: a unit test that depends on the process CWD + # being inside a git repo, which fails in the sandbox where source is + # extracted from a tarball without `.git`. + # + # Runs `nix flake check`, which exercises every check defined in + # flake.nix — in particular `worktrunk-tests`, which runs `cargo test` + # with default features (lib + bins + integration + doctests; the + # `shell-integration-tests` feature is intentionally off). Cold builds + # take ~10-15 min without a binary cache; nightly cadence absorbs it. + needs: gate + if: needs.gate.outputs.run == 'true' + runs-on: ubuntu-24.04 + steps: + - name: 📂 Checkout code + uses: actions/checkout@v6 + + - name: Install Nix + uses: cachix/install-nix-action@v31 + with: + extra_nix_config: | + experimental-features = nix-command flakes + access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} + + - name: nix flake check + run: nix flake check --print-build-logs --keep-going create-issue-on-nightly-failure: needs: @@ -311,6 +306,7 @@ jobs: - benchmarks - check-unused-dependencies - minimal-versions + - nix-flake if: always() && contains(needs.*.result, 'failure') && github.repository_owner == 'max-sixty' && github.event_name == 'schedule' runs-on: ubuntu-24.04 permissions: From 21b614b6f3d570b058e4691620d5e7948decc86f Mon Sep 17 00:00:00 2001 From: Maximilian Roos Date: Fri, 8 May 2026 12:30:21 -0700 Subject: [PATCH 2/4] test(snapshots): redact target/{debug,release} build mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Snapshots hardcoded `target/debug/wt` in "Invoked as:" and diagnostic output, which broke under crane's release builds in the nightly nix-flake sandbox. Collapse both build modes to `target/[BUILD_MODE]/wt` in the shared insta filter chain so a single set of snapshots covers both cargo and crane test runs. Adjacent: pin `test_config_init_already_exists` to a no-project-config CWD. The hint text branches on whether a project config exists, and bare `wt_command()` was inheriting the worktrunk repo's CWD locally (project config present → "view both") while the nix sandbox saw none ("create a project config"). Setting `current_dir(temp_home)` makes the test deterministic across both environments. Co-Authored-By: Claude --- tests/common/mod.rs | 13 ++++++------- tests/integration_tests/config_init.rs | 6 +++++- tests/integration_tests/diagnostic.rs | 2 +- ...nfig_show_bash_matched_exe_emits_alias_hint.snap | 3 +-- ..._show_claude_available_plugin_not_installed.snap | 2 +- ...w__config_show_displays_deprecation_details.snap | 2 +- ...how__config_show_displays_no_cd_deprecation.snap | 2 +- ...how__config_show_displays_no_ff_deprecation.snap | 2 +- ...ow_displays_pre_hook_table_form_deprecation.snap | 2 +- ...lays_project_commit_generation_deprecations.snap | 2 +- ...ig_show_displays_select_section_deprecation.snap | 2 +- ...nfig_show__config_show_empty_project_config.snap | 2 +- ...onfig_show__config_show_empty_system_config.snap | 2 +- ...fig_show__config_show_fish_outdated_wrapper.snap | 2 +- ...fig_show__config_show_fish_with_completions.snap | 2 +- ..._show__config_show_fish_without_completions.snap | 2 +- ...om_linked_worktree_shows_main_worktree_hint.snap | 2 +- ...ig_show__config_show_full_command_not_found.snap | 4 ++-- ...onfig_show__config_show_full_not_configured.snap | 4 ++-- ...fig_show__config_show_full_update_available.snap | 2 +- ..._config_show_full_version_check_unavailable.snap | 2 +- ...sts__config_show__config_show_github_remote.snap | 2 +- ...sts__config_show__config_show_gitlab_remote.snap | 2 +- ...nfig_show__config_show_invalid_project_toml.snap | 2 +- ...fig_show__config_show_invalid_system_config.snap | 2 +- ..._config_show__config_show_invalid_user_toml.snap | 2 +- ..._config_show__config_show_no_project_config.snap | 2 +- ...ts__config_show__config_show_no_user_config.snap | 2 +- ..._show__config_show_nushell_outdated_wrapper.snap | 2 +- ...how_opencode_available_plugin_not_installed.snap | 2 +- ...show__config_show_opencode_plugin_installed.snap | 2 +- ..._show__config_show_opencode_plugin_outdated.snap | 2 +- ...__config_show__config_show_outside_git_repo.snap | 2 +- ...config_show_partial_shell_config_shows_hint.snap | 2 +- ...__config_show__config_show_plugin_installed.snap | 2 +- ...g_show_powershell_detected_via_psmodulepath.snap | 2 +- ...__config_show_skipped_with_installed_binary.snap | 2 +- ...fig_show__config_show_statusline_configured.snap | 2 +- ..._config_show_suggests_project_config_for_ci.snap | 2 +- ..._suggests_user_config_for_commit_generation.snap | 2 +- ...ow_unmatched_candidate_exe_emits_extra_hint.snap | 3 +-- ...matched_candidate_not_suppressed_by_wrapper.snap | 2 +- ...ow__config_show_unmatched_candidate_warning.snap | 2 +- ...how__config_show_warns_unknown_project_keys.snap | 2 +- ...g_show__config_show_warns_unknown_user_keys.snap | 2 +- ..._config_show_whitespace_only_project_config.snap | 2 +- ...onfig_show__config_show_with_project_config.snap | 2 +- ...config_show__config_show_with_system_config.snap | 2 +- ...how__config_show_zsh_compinit_correct_order.snap | 2 +- ...nfig_show__config_show_zsh_compinit_warning.snap | 2 +- ...ell__config_show_detects_fish_legacy_conf_d.snap | 2 +- ..._config_show_fish_legacy_with_functions_dir.snap | 2 +- ...n_tests__diagnostic__diagnostic_file_format.snap | 2 +- ...itch__switch_existing_with_shell_configured.snap | 11 ++++++++++- 54 files changed, 74 insertions(+), 64 deletions(-) diff --git a/tests/common/mod.rs b/tests/common/mod.rs index be52062510..6f766f9d7c 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -991,13 +991,12 @@ fn setup_snapshot_settings_for_paths_with_home( "${1}[VERSION]", ); - // Normalize project root paths in "Binary invoked as:" debug output - // Tests run cargo which produces paths like /path/to/worktrunk/target/debug/wt - // Normalize to [PROJECT_ROOT]/target/debug/wt for deterministic snapshots - settings.add_filter( - r"(Binary invoked as: \x1b\[1m)[^\x1b]+/target/(debug|release)/wt(\x1b\[22m)", - "${1}[PROJECT_ROOT]/target/$2/wt$3", - ); + // Collapse build-mode (debug|release) so snapshots survive both cargo's + // debug builds and crane/release builds (notably the nightly nix-flake + // sandbox). The pattern is anchored on `/target/.../wt` so it matches + // the bin path in "Invoked as:" / "Binary invoked as:" / diagnostic + // hint output without touching unrelated `target/` paths. + settings.add_filter(r"/target/(debug|release)/wt", "/target/[BUILD_MODE]/wt"); // Normalize shell probe binary paths // Shell probe reports the actual binary location which varies by system diff --git a/tests/integration_tests/config_init.rs b/tests/integration_tests/config_init.rs index 412f426288..9e517790f9 100644 --- a/tests/integration_tests/config_init.rs +++ b/tests/integration_tests/config_init.rs @@ -23,6 +23,10 @@ fn test_config_init_already_exists(temp_home: TempDir) { settings.bind(|| { let mut cmd = wt_command(); cmd.arg("config").arg("create"); + // Run from a directory with no project config so the hint is + // deterministic — bare wt_command() otherwise inherits the + // worktrunk repo's CWD and would pick up `.config/wt.toml`. + cmd.current_dir(temp_home.path()); set_temp_home_env(&mut cmd, temp_home.path()); set_xdg_config_path(&mut cmd, temp_home.path()); @@ -33,7 +37,7 @@ fn test_config_init_already_exists(temp_home: TempDir) { ----- stderr ----- ○ User config already exists: ~/.config/worktrunk/config.toml - ↳ To view both user and project configs, run wt config show + ↳ To view, run wt config show. To create a project config, run wt config create --project "); }); } diff --git a/tests/integration_tests/diagnostic.rs b/tests/integration_tests/diagnostic.rs index 40838f3af5..a21788d775 100644 --- a/tests/integration_tests/diagnostic.rs +++ b/tests/integration_tests/diagnostic.rs @@ -626,7 +626,7 @@ fn normalize_report(content: &str) -> String { .unwrap() .replace_all( &result, - "**Command:** `[PROJECT_ROOT]/target/debug/wt list -vv`", + "**Command:** `[PROJECT_ROOT]/target/[BUILD_MODE]/wt list -vv`", ) .to_string(); diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_bash_matched_exe_emits_alias_hint.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_bash_matched_exe_emits_alias_hint.snap index 593d5a4c8c..292563e1b3 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_bash_matched_exe_emits_alias_hint.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_bash_matched_exe_emits_alias_hint.snap @@ -1,6 +1,5 @@ --- source: tests/integration_tests/config_show.rs -assertion_line: 885 info: program: wt args: @@ -61,7 +60,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not active -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt   $SHELL: /bin/bash ○ bash: Already configured shell extension & completions @ ~/.bashrc:2 diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_claude_available_plugin_not_installed.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_claude_available_plugin_not_installed.snap index da3770ee0b..1fccaa5cda 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_claude_available_plugin_not_installed.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_claude_available_plugin_not_installed.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt CLAUDE CODE ↳ Plugin not installed. To install, run wt config plugins claude install diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_displays_deprecation_details.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_displays_deprecation_details.snap index cf4dee63b3..952780e95f 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_displays_deprecation_details.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_displays_deprecation_details.snap @@ -73,7 +73,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_displays_no_cd_deprecation.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_displays_no_cd_deprecation.snap index f16b6a224a..a426fc3429 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_displays_no_cd_deprecation.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_displays_no_cd_deprecation.snap @@ -71,7 +71,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_displays_no_ff_deprecation.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_displays_no_ff_deprecation.snap index 1e266fdf41..18812421fb 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_displays_no_ff_deprecation.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_displays_no_ff_deprecation.snap @@ -71,7 +71,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_displays_pre_hook_table_form_deprecation.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_displays_pre_hook_table_form_deprecation.snap index 3bdac8eb51..bf1061204d 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_displays_pre_hook_table_form_deprecation.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_displays_pre_hook_table_form_deprecation.snap @@ -80,7 +80,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_displays_project_commit_generation_deprecations.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_displays_project_commit_generation_deprecations.snap index fdc0554ff3..2ccff3a2a9 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_displays_project_commit_generation_deprecations.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_displays_project_commit_generation_deprecations.snap @@ -73,7 +73,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_displays_select_section_deprecation.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_displays_select_section_deprecation.snap index 0ead123ef0..3b56f1a915 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_displays_select_section_deprecation.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_displays_select_section_deprecation.snap @@ -71,7 +71,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_empty_project_config.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_empty_project_config.snap index 60d2505cee..b670ecf587 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_empty_project_config.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_empty_project_config.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_empty_system_config.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_empty_system_config.snap index cc6553bc89..a95c028d32 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_empty_system_config.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_empty_system_config.snap @@ -63,7 +63,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_fish_outdated_wrapper.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_fish_outdated_wrapper.snap index 8935584041..9a38d28bf5 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_fish_outdated_wrapper.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_fish_outdated_wrapper.snap @@ -59,7 +59,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not active -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt ▲ fish: Outdated shell extension @ ~/.config/fish/functions/wt.fish ↳ To update, run wt config shell install fish diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_fish_with_completions.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_fish_with_completions.snap index 8f98cf6c14..1fbe28ceb1 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_fish_with_completions.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_fish_with_completions.snap @@ -59,7 +59,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not active -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt ○ fish: Already configured shell extension @ ~/.config/fish/functions/wt.fish:7   command wt config shell init fish | source diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_fish_without_completions.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_fish_without_completions.snap index 37bc05607a..debdd9a23f 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_fish_without_completions.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_fish_without_completions.snap @@ -59,7 +59,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not active -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt ○ fish: Already configured shell extension @ ~/.config/fish/functions/wt.fish:7   command wt config shell init fish | source diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_from_linked_worktree_shows_main_worktree_hint.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_from_linked_worktree_shows_main_worktree_hint.snap index 949860e377..fdf046d678 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_from_linked_worktree_shows_main_worktree_hint.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_from_linked_worktree_shows_main_worktree_hint.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_full_command_not_found.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_full_command_not_found.snap index 612e98beac..b0463171f6 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_full_command_not_found.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_full_command_not_found.snap @@ -41,7 +41,7 @@ info: WORKTRUNK_TEST_DELAYED_STREAM_MS: "-1" WORKTRUNK_TEST_EPOCH: "1735776000" WORKTRUNK_TEST_FISH_INSTALLED: "0" - WORKTRUNK_TEST_LATEST_VERSION: 0.47.0 + WORKTRUNK_TEST_LATEST_VERSION: 0.48.0 WORKTRUNK_TEST_NUSHELL_ENV: "0" WORKTRUNK_TEST_OPENCODE_INSTALLED: "0" WORKTRUNK_TEST_POWERSHELL_ENV: "0" @@ -66,7 +66,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt DIAGNOSTICS ↳ CI status requires GitHub or GitLab remote diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_full_not_configured.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_full_not_configured.snap index b432086e14..e3966e3184 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_full_not_configured.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_full_not_configured.snap @@ -41,7 +41,7 @@ info: WORKTRUNK_TEST_DELAYED_STREAM_MS: "-1" WORKTRUNK_TEST_EPOCH: "1735776000" WORKTRUNK_TEST_FISH_INSTALLED: "0" - WORKTRUNK_TEST_LATEST_VERSION: 0.47.0 + WORKTRUNK_TEST_LATEST_VERSION: 0.48.0 WORKTRUNK_TEST_NUSHELL_ENV: "0" WORKTRUNK_TEST_OPENCODE_INSTALLED: "0" WORKTRUNK_TEST_POWERSHELL_ENV: "0" @@ -63,7 +63,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt DIAGNOSTICS ↳ CI status requires GitHub or GitLab remote diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_full_update_available.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_full_update_available.snap index e4e59c0d55..c076334c6a 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_full_update_available.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_full_update_available.snap @@ -63,7 +63,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt DIAGNOSTICS ↳ CI status requires GitHub or GitLab remote diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_full_version_check_unavailable.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_full_version_check_unavailable.snap index 65c31d147e..714a7b6620 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_full_version_check_unavailable.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_full_version_check_unavailable.snap @@ -63,7 +63,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt DIAGNOSTICS ↳ CI status requires GitHub or GitLab remote diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_github_remote.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_github_remote.snap index 6d4ee157f8..10fe1f99f4 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_github_remote.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_github_remote.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_gitlab_remote.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_gitlab_remote.snap index 6d4ee157f8..10fe1f99f4 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_gitlab_remote.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_gitlab_remote.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_invalid_project_toml.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_invalid_project_toml.snap index 8d480e35a2..d751e682bf 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_invalid_project_toml.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_invalid_project_toml.snap @@ -67,7 +67,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_invalid_system_config.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_invalid_system_config.snap index 0fbee16b2a..8f6a54996a 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_invalid_system_config.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_invalid_system_config.snap @@ -69,7 +69,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_invalid_user_toml.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_invalid_user_toml.snap index 1d23a63bd2..7e9064b9e4 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_invalid_user_toml.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_invalid_user_toml.snap @@ -67,7 +67,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_no_project_config.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_no_project_config.snap index 6d4ee157f8..10fe1f99f4 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_no_project_config.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_no_project_config.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_no_user_config.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_no_user_config.snap index ffe9459b92..77e49eaddd 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_no_user_config.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_no_user_config.snap @@ -60,7 +60,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_nushell_outdated_wrapper.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_nushell_outdated_wrapper.snap index 09286a0504..ffeb69b5ec 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_nushell_outdated_wrapper.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_nushell_outdated_wrapper.snap @@ -59,7 +59,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not active -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt ▲ nu: Outdated shell extension @ ~/.config/nushell/vendor/autoload/wt.nu ↳ To update, run wt config shell install nu diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_opencode_available_plugin_not_installed.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_opencode_available_plugin_not_installed.snap index 29f88c670b..380edb143a 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_opencode_available_plugin_not_installed.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_opencode_available_plugin_not_installed.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OPENCODE ↳ Plugin not installed. To install, run wt config plugins opencode install diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_opencode_plugin_installed.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_opencode_plugin_installed.snap index 0ebc344dc3..8e16a78dad 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_opencode_plugin_installed.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_opencode_plugin_installed.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OPENCODE ✓ Plugin installed diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_opencode_plugin_outdated.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_opencode_plugin_outdated.snap index 53065e5d67..b5bdf19f5f 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_opencode_plugin_outdated.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_opencode_plugin_outdated.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OPENCODE ↳ Plugin outdated. To update, run wt config plugins opencode install diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_outside_git_repo.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_outside_git_repo.snap index 39fcdb7a48..45500eba20 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_outside_git_repo.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_outside_git_repo.snap @@ -50,7 +50,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_partial_shell_config_shows_hint.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_partial_shell_config_shows_hint.snap index 984c78a73a..526be8a595 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_partial_shell_config_shows_hint.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_partial_shell_config_shows_hint.snap @@ -60,7 +60,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not active -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt   $SHELL: /bin/zsh ○ bash: Not configured shell extension & completions diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_plugin_installed.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_plugin_installed.snap index 6a78402b7f..6d92edeb2d 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_plugin_installed.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_plugin_installed.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt CLAUDE CODE ✓ Plugin installed diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_powershell_detected_via_psmodulepath.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_powershell_detected_via_psmodulepath.snap index 23fae04bff..49be33c238 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_powershell_detected_via_psmodulepath.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_powershell_detected_via_psmodulepath.snap @@ -59,7 +59,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not active -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt   Detected shell: powershell (via PSModulePath) ○ bash: Already configured shell extension & completions @ ~/.bashrc:1 diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_skipped_with_installed_binary.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_skipped_with_installed_binary.snap index 9c9978e036..e969368c47 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_skipped_with_installed_binary.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_skipped_with_installed_binary.snap @@ -60,7 +60,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt   $SHELL: /bin/zsh ○ bash: Skipped; ~/.bashrc not found diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_statusline_configured.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_statusline_configured.snap index 7ba0bb4baa..26b84e71c0 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_statusline_configured.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_statusline_configured.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt CLAUDE CODE ✓ Plugin installed diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_suggests_project_config_for_ci.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_suggests_project_config_for_ci.snap index 0a7257129f..6a181e9cad 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_suggests_project_config_for_ci.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_suggests_project_config_for_ci.snap @@ -76,7 +76,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_suggests_user_config_for_commit_generation.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_suggests_user_config_for_commit_generation.snap index 6c0fdcaaaa..d56f79643b 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_suggests_user_config_for_commit_generation.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_suggests_user_config_for_commit_generation.snap @@ -74,7 +74,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_unmatched_candidate_exe_emits_extra_hint.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_unmatched_candidate_exe_emits_extra_hint.snap index 666829e0a1..7b0ecbe09f 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_unmatched_candidate_exe_emits_extra_hint.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_unmatched_candidate_exe_emits_extra_hint.snap @@ -1,6 +1,5 @@ --- source: tests/integration_tests/config_show.rs -assertion_line: 1622 info: program: wt args: @@ -62,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt ○ bash: Not configured shell extension & completions ▲ Found wt in ~/.bashrc:2 but not detected as integration: diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_unmatched_candidate_not_suppressed_by_wrapper.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_unmatched_candidate_not_suppressed_by_wrapper.snap index e6e51e55f0..77a5e89cf7 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_unmatched_candidate_not_suppressed_by_wrapper.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_unmatched_candidate_not_suppressed_by_wrapper.snap @@ -60,7 +60,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not active -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt ○ bash: Not configured shell extension & completions ▲ fish: Outdated shell extension @ ~/.config/fish/functions/wt.fish diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_unmatched_candidate_warning.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_unmatched_candidate_warning.snap index 5dbaaef11d..8690f4d860 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_unmatched_candidate_warning.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_unmatched_candidate_warning.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt ○ bash: Not configured shell extension & completions ▲ Found wt in ~/.bashrc:3 but not detected as integration: diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_warns_unknown_project_keys.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_warns_unknown_project_keys.snap index a4d1eca91c..323d3aedb9 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_warns_unknown_project_keys.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_warns_unknown_project_keys.snap @@ -63,7 +63,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_warns_unknown_user_keys.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_warns_unknown_user_keys.snap index 2b216cbfac..4da7d619e2 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_warns_unknown_user_keys.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_warns_unknown_user_keys.snap @@ -65,7 +65,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_whitespace_only_project_config.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_whitespace_only_project_config.snap index 60d2505cee..b670ecf587 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_whitespace_only_project_config.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_whitespace_only_project_config.snap @@ -61,7 +61,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_with_project_config.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_with_project_config.snap index 066b6b81ef..a4cc948bdc 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_with_project_config.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_with_project_config.snap @@ -64,7 +64,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_with_system_config.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_with_system_config.snap index 4c070ac2ff..0adec62a23 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_with_system_config.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_with_system_config.snap @@ -68,7 +68,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not configured ↳ To configure, run wt config shell install -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt OTHER ○ wt: [VERSION] diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_zsh_compinit_correct_order.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_zsh_compinit_correct_order.snap index c11fad39fa..5dd1817282 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_zsh_compinit_correct_order.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_zsh_compinit_correct_order.snap @@ -60,7 +60,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not active -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt ○ zsh: Already configured shell extension & completions @ ~/.zshrc:5   if command -v wt >/dev/null 2>&1; then eval "$(command wt config shell init zsh)"; fi diff --git a/tests/snapshots/integration__integration_tests__config_show__config_show_zsh_compinit_warning.snap b/tests/snapshots/integration__integration_tests__config_show__config_show_zsh_compinit_warning.snap index b07b5aaf32..da4c0735b0 100644 --- a/tests/snapshots/integration__integration_tests__config_show__config_show_zsh_compinit_warning.snap +++ b/tests/snapshots/integration__integration_tests__config_show__config_show_zsh_compinit_warning.snap @@ -60,7 +60,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not active -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt ○ zsh: Already configured shell extension & completions @ ~/.zshrc:2   if command -v wt >/dev/null 2>&1; then eval "$(command wt config shell init zsh)"; fi diff --git a/tests/snapshots/integration__integration_tests__configure_shell__config_show_detects_fish_legacy_conf_d.snap b/tests/snapshots/integration__integration_tests__configure_shell__config_show_detects_fish_legacy_conf_d.snap index 78492bdc3f..4149644ac1 100644 --- a/tests/snapshots/integration__integration_tests__configure_shell__config_show_detects_fish_legacy_conf_d.snap +++ b/tests/snapshots/integration__integration_tests__configure_shell__config_show_detects_fish_legacy_conf_d.snap @@ -59,7 +59,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not active -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt   $SHELL: /bin/fish ↳ To configure, run wt config shell install diff --git a/tests/snapshots/integration__integration_tests__configure_shell__config_show_fish_legacy_with_functions_dir.snap b/tests/snapshots/integration__integration_tests__configure_shell__config_show_fish_legacy_with_functions_dir.snap index f51cc8c8fd..9189d1d049 100644 --- a/tests/snapshots/integration__integration_tests__configure_shell__config_show_fish_legacy_with_functions_dir.snap +++ b/tests/snapshots/integration__integration_tests__configure_shell__config_show_fish_legacy_with_functions_dir.snap @@ -59,7 +59,7 @@ exit_code: 0 SHELL INTEGRATION ▲ Shell integration not active -  Invoked as: [PROJECT_ROOT]/target/debug/wt +  Invoked as: [PROJECT_ROOT]/target/[BUILD_MODE]/wt   $SHELL: /bin/fish ○ Fish integration found in deprecated location @ ~/.config/fish/conf.d/wt.fish diff --git a/tests/snapshots/integration__integration_tests__diagnostic__diagnostic_file_format.snap b/tests/snapshots/integration__integration_tests__diagnostic__diagnostic_file_format.snap index 4d0b7e1e0e..cf27f43f0d 100644 --- a/tests/snapshots/integration__integration_tests__diagnostic__diagnostic_file_format.snap +++ b/tests/snapshots/integration__integration_tests__diagnostic__diagnostic_file_format.snap @@ -5,7 +5,7 @@ expression: normalize_report(&content) ## Diagnostic Report **Generated:** [TIMESTAMP] -**Command:** `[PROJECT_ROOT]/target/debug/wt list -vv` +**Command:** `[PROJECT_ROOT]/target/[BUILD_MODE]/wt list -vv` **Result:** Command completed successfully
diff --git a/tests/snapshots/integration__integration_tests__switch__switch_existing_with_shell_configured.snap b/tests/snapshots/integration__integration_tests__switch__switch_existing_with_shell_configured.snap index 866cd5d7ab..6d85c9c302 100644 --- a/tests/snapshots/integration__integration_tests__switch__switch_existing_with_shell_configured.snap +++ b/tests/snapshots/integration__integration_tests__switch__switch_existing_with_shell_configured.snap @@ -11,10 +11,15 @@ info: COLUMNS: "500" GIT_AUTHOR_DATE: "2025-01-01T00:00:00Z" GIT_COMMITTER_DATE: "2025-01-01T00:00:00Z" + GIT_COMMON_DIR: "" GIT_CONFIG_GLOBAL: "[TEST_GIT_CONFIG]" GIT_CONFIG_SYSTEM: /dev/null + GIT_DIR: "" GIT_EDITOR: "" + GIT_INDEX_FILE: "" + GIT_OBJECT_DIRECTORY: "" GIT_TERMINAL_PROMPT: "0" + GIT_WORK_TREE: "" HOME: "[TEST_HOME]" LANG: C LC_ALL: C @@ -30,13 +35,17 @@ info: WORKTRUNK_APPROVALS_PATH: "[TEST_APPROVALS]" WORKTRUNK_CONFIG_PATH: "[TEST_CONFIG]" WORKTRUNK_SYSTEM_CONFIG_PATH: "[TEST_SYSTEM_CONFIG]" + WORKTRUNK_TEST_BASH_INSTALLED: "0" WORKTRUNK_TEST_CLAUDE_INSTALLED: "0" WORKTRUNK_TEST_DELAYED_STREAM_MS: "-1" WORKTRUNK_TEST_EPOCH: "1735776000" + WORKTRUNK_TEST_FISH_INSTALLED: "0" WORKTRUNK_TEST_NUSHELL_ENV: "0" WORKTRUNK_TEST_OPENCODE_INSTALLED: "0" WORKTRUNK_TEST_POWERSHELL_ENV: "0" + WORKTRUNK_TEST_POWERSHELL_INSTALLED: "0" WORKTRUNK_TEST_SKIP_URL_HEALTH_CHECK: "1" + WORKTRUNK_TEST_ZSH_INSTALLED: "0" XDG_CONFIG_HOME: "[TEST_CONFIG_HOME]" --- success: true @@ -44,5 +53,5 @@ exit_code: 0 ----- stdout ----- ----- stderr ----- -▲ Worktree for shell-configured @ _REPO_.shell-configured, but cannot change directory — ran [PROJECT_ROOT]/target/debug/wt; shell integration wraps wt +▲ Worktree for shell-configured @ _REPO_.shell-configured, but cannot change directory — ran [PROJECT_ROOT]/target/[BUILD_MODE]/wt; shell integration wraps wt ↳ To change directory, run wt switch shell-configured From 84db0bd32046419ff352d4056de0aefc13dc3dd2 Mon Sep 17 00:00:00 2001 From: Maximilian Roos Date: Fri, 8 May 2026 12:32:15 -0700 Subject: [PATCH 3/4] test(nix): provide python3, ps, and absolute python shebang Three integration tests fail in the nix-flake sandbox for sandbox-only reasons: `for_each_preserves_argv_quoting` and `post_create_script_reads_json` need `python3` on PATH; the latter also relies on `#!/usr/bin/env python3`, which fails on NixOS where `/usr/bin/env` doesn't exist (the kernel runs the literal interpreter path, so PATH lookup can't apply); `alias_child_shares_parent_pgroup` shells out to `ps -o pgid= -p $$` and writes empty content when `ps` isn't found, surfacing as `cannot parse integer from empty string`. Add `pkgs.python3` and `pkgs.procps` to `worktrunk-tests`' native build inputs, and resolve `python3` at script-write time so the post-create fixture's shebang is the real interpreter path. Co-Authored-By: Claude --- flake.nix | 10 +++++++++- tests/integration_tests/post_start_commands.rs | 8 +++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index 08487fc81c..2a6e708210 100644 --- a/flake.nix +++ b/flake.nix @@ -179,7 +179,15 @@ // { inherit cargoArtifacts; src = pkgs.lib.cleanSource ./.; - nativeBuildInputs = commonArgs.nativeBuildInputs ++ [ pkgs.git ]; + # Tests shell out to a few host tools — `git` for the harness, + # `python3` for argv-quoting and post-start fixtures, `ps` + # (procps) for the pgid invariant test. Without these on PATH + # the sandbox surfaces them as `No such file or directory`. + nativeBuildInputs = commonArgs.nativeBuildInputs ++ [ + pkgs.git + pkgs.python3 + pkgs.procps + ]; } ); }; diff --git a/tests/integration_tests/post_start_commands.rs b/tests/integration_tests/post_start_commands.rs index 3519c9d16a..f7e0466d5c 100644 --- a/tests/integration_tests/post_start_commands.rs +++ b/tests/integration_tests/post_start_commands.rs @@ -585,7 +585,12 @@ fn test_post_create_script_reads_json(repo: TestRepo) { let scripts_dir = repo.root_path().join("scripts"); fs::create_dir_all(&scripts_dir).unwrap(); - let script_content = r#"#!/usr/bin/env python3 + // Resolve `python3` on PATH and bake the absolute path into the shebang. + // `#!/usr/bin/env python3` doesn't work in the nix sandbox where + // `/usr/bin/env` doesn't exist; the kernel runs the literal interpreter + // path, so shebang resolution can't piggyback on PATH directly. + let python = which::which("python3").expect("python3 in PATH for test"); + let script_body = r#" import json import sys @@ -596,6 +601,7 @@ with open('hook_output.txt', 'w') as f: f.write(f"hook_type={ctx['hook_type']}\n") f.write(f"hook_name={ctx.get('hook_name', 'unnamed')}\n") "#; + let script_content = format!("#!{}{}", python.display(), script_body); let script_path = scripts_dir.join("setup.py"); fs::write(&script_path, script_content).unwrap(); fs::set_permissions(&script_path, fs::Permissions::from_mode(0o755)).unwrap(); From c0306efe7aa1f30e1e44c744c319b8093f28c871 Mon Sep 17 00:00:00 2001 From: Maximilian Roos Date: Fri, 8 May 2026 12:44:44 -0700 Subject: [PATCH 4/4] test(snapshots): make PTY [BIN] filter survive [BUILD_MODE] rewrite The prelude filter rewrites `target/(debug|release)/wt` to `target/[BUILD_MODE]/wt` before per-test settings run. PTY tests then expect the more specific `[BIN]` placeholder, but its regex still anchored on the literal build-mode segment and silently no-op'd when the prelude had already collapsed it. Snapshots in `integration__integration_tests__approval_pty__*` and `integration__integration_tests__bare_repository__*` saw `[PROJECT_ROOT]/target/[BUILD_MODE]/wt` instead of `[BIN]`. Extend the alternation to match the placeholder too, so the filter collapses to `[BIN]` regardless of which rewrite landed first. Spotted by worktrunk-bot review on #2648. Co-Authored-By: Claude --- tests/common/mod.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/common/mod.rs b/tests/common/mod.rs index 6f766f9d7c..432cbfb028 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -1208,7 +1208,14 @@ pub fn add_pty_binary_path_filters(settings: &mut insta::Settings) { // cargo-affected (`affected/build/`, max-sixty/cargo-affected#12), and // cross-target builds (e.g. `target/x86_64-unknown-linux-musl/debug/wt` // from the nightly `release-target` matrix). - settings.add_filter(r"[^\s]+/target/(?:[^/\s]+/)*(?:debug|release)/wt", "[BIN]"); + // + // Include the literal `[BUILD_MODE]` placeholder so this filter still + // collapses to `[BIN]` when the prelude's `target/(debug|release)/wt` + // → `target/[BUILD_MODE]/wt` rewrite has already run. + settings.add_filter( + r"[^\s]+/target/(?:[^/\s]+/)*(?:debug|release|\[BUILD_MODE\])/wt", + "[BIN]", + ); } // =============================================================================