Skip to content

Fix welcome command for fish shells - #804

Open
M1nt-Ch0c0 wants to merge 1 commit into
Kuddev:mainfrom
M1nt-Ch0c0:fix/fish-welcome
Open

M1nt-Ch0c0 wants to merge 1 commit into
Kuddev:mainfrom
M1nt-Ch0c0:fix/fish-welcome

Conversation

@M1nt-Ch0c0

Copy link
Copy Markdown
Contributor

Result / 用户结果

With the welcome screen enabled, a WSL or Unix pane using fish receives a command fish can execute instead of a POSIX if ... then ... fi expression left at its prompt. Closes #803.

Design / 设计边界

  • Keep the existing welcome-command authority and run the POSIX body through sh -c. The outer invocation is valid in fish, bash and sh; Windows PowerShell behavior is unchanged.
  • Preserve the fastfetch branch and the Pebrel/uname fallback. No new dependencies, persistence, or lifecycle changes.

Evidence / 验证依据

  • WSL Arch Linux, fish 4.9.3: the original command fails fish -n -c; the new command passed actual sh, bash and fish execution with and without fastfetch. An interactive fish PTY executed the new command and accepted subsequent input.
  • The added Rust regression test passed in an isolated rustc --test harness extracted from the production function and test (the harness supplies a temporary-directory helper). It exercises the real shell commands; fish and bash are skipped when absent.
  • python scripts/check_architecture.py --base origin/main: passed.
  • python -m unittest scripts.tests.test_architecture_budgets scripts.tests.test_architecture_dependencies scripts.tests.test_architecture_governance: 55 passed.
  • git diff --check: passed. Full Cargo product build and project test suite were not run: the pinned Rust 1.97.1 toolchain was not available locally. CI must verify the full product and native platforms.

Required Review / 必须确认

  • I followed CONTRIBUTING.md, docs/architecture.md, and docs/project-constraints.md.
  • I split responsibilities, not arbitrary line ranges; no duplicate behavior authority was added.
  • python scripts/check_architecture.py --base origin/main passes; budgets were not inflated to fit the change.
  • Tests cover success and failure; platform/feature coverage limitations are stated.
  • New messages use typed i18n IDs and matching placeholders; untranslated content has an explicit fallback. (Not applicable: no new UI text.)
  • Governance changes include a counterexample, corrected contract, tests, and a maintainer-reviewed decision. (Not applicable.)

@M1nt-Ch0c0
M1nt-Ch0c0 requested a review from Kuddev as a code owner October 29, 2026 03:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Welcome command uses POSIX syntax in fish panes

1 participant