# 0.95.0 — Connections and hidden key entry

Open `humanish tui` and press **c** to configure AgentMail. **Add API key**
opens a hidden terminal prompt, then returns to Connections. Ctrl+C cancels
without changing the existing key or profile. Existing keys can be reused or
replaced. Entry uses the host's key store, outside the TUI rendering contract.

Keys live in the existing user-level store with file mode 0600. Project
connection metadata lives in `.humanish/local/comms.yaml` and contains only a
provider name and environment-variable reference. Explicit environment/env-file
values retain precedence; strict key mode continues to disable discovery.
The screen identifies those cases instead of claiming a newly stored key is active.

Agents have matching commands:

```bash
humanish comms providers --json
humanish keys set agentmail
humanish comms connections add agentmail --json
humanish comms connections list --json
```

This is connection setup only. Authentication, permissions, capacity and
delivery are unverified, and this version does not acquire mailboxes or enable
provider-backed email in studies. Unsupported study connection/SMS selectors
and shared-world SMTP declarations fail before execution. Supported local
email capture remains available.

The release also includes TUI `--env-file` propagation and route-specific key
requirements from #793. Dry-run, local-agent and terminal participants no longer
inherit a hardcoded OpenAI-plus-E2B key requirement.

Validation covers local configuration, containment, credential precedence,
hidden entry/cancellation/paste, persistence and TUI frames at 80 and 45
columns. `pnpm tui:connections:proof` drives the built CLI in a real PTY with
synthetic keys and an isolated store, checking cancellation, replacement,
restart and absence of credential values from terminal output. It requires
Python 3 with Unix PTY support; it does not contact AgentMail.
