# Changelog All notable changes to this project will be documented in this file. ## v0.5.0 - 2026-01-19 ### Added - `ToughSwitch` consolidated type combining Device, System, Interfaces, VLANs, Services, Statistics, and Neighbors - `GetToughSwitch(ctx, host)` method to fetch all data for a single ToughSwitch device in parallel - `GetAllToughSwitches(ctx)` method to fetch consolidated data for all ToughSwitch devices - `EdgeOS` consolidated type combining AuthInfo and Config - `GetEdgeOS(ctx, host)` method to fetch all data for a single EdgeOS device in parallel - `GetAllEdgeOS(ctx)` method to fetch consolidated data for all EdgeOS devices ### Changed - CLI `get device` and `get devices` commands now return full consolidated data for both device types - EdgeOS CLI output now includes device model, ports, PoE capability, and features from AuthInfo ### Fixed - Typo in ToughSwitch struct field name (`Statistucs` → `Statistics`) ## 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.