# BUG-CLI Scratchpad

## Objective

Fix 4 CLI/TUI polish bugs in a single PR (issues #192, #193, #194, #199).

## Issues

- #192: Ctrl+T leaks 't' into input
- #193: Duplicate React keys in CommandAutocomplete
- #194: /provider login false clipboard claim
- #199: TUI shows hardcoded version "0.0.0"

## Plan and Fixes

### Bug #192 — Ctrl+T character leak

- Location: `packages/cli/src/tui/app.tsx`
- Fix: Added `ctrlJustFired` ref. Set synchronously in Ctrl+T/L/N/K handlers, cleared via microtask.
  In the `onChange` wrapper passed to `InputBar`, if `ctrlJustFired.current` is true, suppress the
  leaked character and return early.

### Bug #193 — Duplicate React keys

- Location: `packages/cli/src/tui/components/command-autocomplete.tsx`
- Fix: Changed `key={cmd.name}` to `key={`${cmd.execution}-${cmd.name}`}` for uniqueness.
- Also: `packages/cli/src/tui/commands/registry.ts` — `getAll()` now deduplicates gateway commands
  that share a name with local commands. Local commands take precedence.

### Bug #194 — False clipboard claim

- Location: `apps/gateway/src/commands/command-executor.service.ts`
- Fix: Removed the `\n\n(URL copied to clipboard)` suffix from the provider login message.

### Bug #199 — Hardcoded version "0.0.0"

- Location: `packages/cli/src/cli.ts` + `packages/cli/src/tui/app.tsx`
- Fix: `cli.ts` reads version from `../package.json` via `createRequire`. Passes `version: CLI_VERSION`
  to TuiApp in both render calls. TuiApp has new optional `version` prop (defaults to '0.0.0'),
  passes it to TopBar instead of hardcoded `"0.0.0"`.

## Quality Gates

- CLI typecheck: PASSED
- CLI lint: PASSED
- Prettier format:check: PASSED
- Gateway lint: PASSED
