# Changelog All notable changes to this project will be documented in this file. ## v0.4.0 - 2026-01-18 ### Added - CLI tool (`cmd/`) for quick device queries using cobra - `get device ` - fetch info from a single device - `get devices` - fetch info from all configured devices in parallel - YAML/JSON config file support with environment variable overlay - Pretty print and colorized YAML output options - `Login(ctx, host)` method to both toughswitch and edgeos clients for explicit pre-authentication - Context helpers for storing/retrieving clients (`ToughSwitchClientFromContext`, `EdgeOSClientFromContext`) ### Changed - CLI uses zerolog's built-in context methods for logger storage - CLI prerun creates shared clients from config and stores in context - Updated documentation (README.md, CLAUDE.md) with CLI usage and new Login method ### Fixed - Config default flag handling in CLI ## v0.3.0 - 2026-01-14 ### Changed - Renamed project from toughswitch to ubiquiti-clients - Added EdgeOS support ## v0.2.1 - 2026-01-05 ### Changed - Minor LSP improvements to tests - Refactor entire project edgeos -> toughswitch ## [v0.2.0] - 2026-01-04 ### Added - Thread-safe `Add` and `Del` methods to `Client` for dynamic host management. - `RWMutex` to `Client` struct to protect `devices` map. - `Transport` field to `Config` to allow mocking HTTP transport in tests. - `getDeviceByHost` helper to centralize device lookup locking. - Tests for thread safety and Add/Del functionality. ### Changed - Refactored `GetAll*` methods to snapshot host keys before iteration to avoid concurrent map read/write panic. - Improved concurrent `GetAll` operations. ## [v0.1.1] - 2026-01-04 ### Fixed - CI pipeline configuration. ## [v0.1.0] - 2026-01-04 ### Added - Initial CI pipeline setup. - Initial release of Ubiquiti toughswitch Go Client.