# Test Qesh sessions and input

## Quick check in the app

Start in a spare session so these commands do not interrupt your work.

1. Type `pwd`, press Enter, and check the starting folder.
2. Run `echo $$` and note the shell PID.
3. Create a second tab, switch back, resize the window, and run `echo $$` again. The original pane should retain its PID.
4. Split the pane and run `echo $$` in the new pane. It should have a different PID.
5. Narrow the window until only the focused pane fits, then enlarge it. The saved split layout should return.
6. Run `sleep 30`, then press Ctrl+C. A prompt should return without closing the workspace.

## Unicode and color

```sh
printf 'Unicode: café 日本語 ✓\n'
printf '\033[36mcyan\033[0m normal\n'
```

Expect readable Unicode, cyan text followed by default-color text, and a prompt on the next line. Glyph coverage depends on your font.

Try command history with Up, tab completion with a known folder name, and a multiline paste. Run `vim` or `top` if installed, then quit the program and check that the prompt returns. Workspace mouse selection works; terminal-program mouse input is not forwarded in this version.

## Source checks

From the repository with dependencies installed:

```sh
bun run check
bun test
node scripts/smoke-cli.mjs
node scripts/smoke-desktop.mjs
node scripts/smoke-restore.mjs
bun run build:desktop
```

Type checking should finish without errors. The suite currently has 18 tests covering geometry, session isolation, input, ANSI output, Unicode, full-screen programs, configuration, grouping, docking, and cleanup. Both smoke scripts should print a passed message and terminate their child shells.

[GitHub Actions](https://github.com/qentrah/qesh/actions/workflows/ci.yml) builds and checks native Apple Silicon and Intel apps. Those checks do not replace visual inspection of every font and macOS setup.

## Report a problem

[Open an issue](https://github.com/qentrah/qesh/issues) with your Qesh version, Mac processor, macOS version, shell, exact steps, and expected versus actual result. Include the command that triggers the problem and whether it happens in the desktop app, CLI, or both. Remove secrets and personal terminal output before sharing logs.
