> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trytrellis.app/llms.txt
> Use this file to discover all available pages before exploring further.

# v0.3.3

> 2026-03-04

Init download UX improvements, update spec protection, and Windows encoding fixes.

## Enhancements

* **Proxy detection**: Automatically detects `HTTPS_PROXY` / `HTTP_PROXY` / `ALL_PROXY` environment variables and configures undici ProxyAgent for all network calls (including giget template downloads)
* **Download timeout with countdown**: Template index fetch has a 5s timeout with live `Loading... 2s/5s` countdown; template downloads have a 30s timeout via `Promise.race`
* **Source URL display**: Shows the GitHub URL being fetched during `trellis init` template selection
* **Retry hint**: On download failure, suggests `trellis init --template <name>` for manual retry
* **Eliminate double-fetch**: Pre-fetched `SpecTemplate` is passed to `downloadTemplateById` to avoid fetching the index twice
* **Update skips spec directory**: `trellis update` no longer touches `.trellis/spec/` — user-customized spec content is fully protected
* **Update proxy support**: `trellis update` sets up proxy before npm version check

## Bug Fixes

* **Windows stdin UTF-8**: Centralized stdio encoding in `common/__init__.py` — adds `sys.stdin` to `_configure_stream()` to fix garbled Chinese text when piping content via stdin on Windows PowerShell
* **Remove inline encoding**: Removed duplicated encoding code from `add_session.py` and `git_context.py` — all streams now handled by `common/__init__.py`
* **Record-session template cleanup**: Removed auto-commit implementation details from all 8 platform record-session templates to prevent AI agents from misusing the `--no-commit` flag

## Dependencies

* Added `undici ^6.21.0` for ProxyAgent support
* Bumped `engines.node` from `>=18.0.0` to `>=18.17.0` (required by undici v6)

## Migration

No migration required. Run `trellis update` to sync updated scripts and templates. Node.js >=18.17.0 is now required.
