Changelog

for the component mrwheel/ota_upload v0.1.0
# Changelog

## 0.1.0

### Core Features
- TCP push OTA protocol (port 3232, magic `OTAMGR01`, simple error responses)
- Direct image write using ESP-IDF OTA APIs
- Native ESP-IDF image validation (CRC, magic bytes, version)
- Automatic reboot after successful update
- NVS-based state tracking

### Network & Discovery
- mDNS hostname support (`ota-upload-example.local`)
- mDNS service advertisement:
  - `_esp-ota._tcp` — OTA firmware update service
  - `_http._tcp` — HTTP service (for future web interface and standard discovery)
  - `_ssh._tcp` — SSH service (placeholder for future remote management)
- Integration with `espressif/mdns` component
- **Important:** mDNS initialization is deferred until `IP_EVENT_STA_GOT_IP` event
  to ensure proper network stack readiness

### Wi-Fi Integration
- Optional Wi-Fi provisioning via captive portal
- Integration with `michmich/esp-idf-wifi-provisioner`
- Fallback to hardcoded credentials (configurable via `menuconfig`)

### Host Tools
- Python host package (`host_tools/`) with `idf.py ota` integration
- Automatic build artifact discovery from `project_description.json`
- Progress reporting during upload
- Chunked streaming (64KB chunks)

### Configuration
- Kconfig defaults (port, hostname, reboot behavior)
- Example partition table (4MB: nvs, otadata, phy_init, ota_0, ota_1, littlefs)
- Basic example project with Wi-Fi provisioning

### Documentation
- Protocol specification (`docs/protocol.md`)
- Security warning and v0.1.0 threat model (`docs/security.md`)
- `idf.py` integration architecture (`docs/idf_py_integration.md`)
- Public API reference (`API.md`)