Files
Fichero/CHANGELOG.md
paul2212 8520a88197 refactor: Externalize web UI to index.html
Refactors the embedded web UI in the API server to be loaded from a
separate index.html file instead of a large inline string.

This improves maintainability by separating the presentation layer
(HTML/CSS/JS) from the backend Python logic.
2026-03-16 10:15:22 +01:00

114 lines
4.1 KiB
Markdown

# Changelog
All notable changes to this project are documented in this file.
The format is based on Keep a Changelog and this project uses Semantic Versioning.
## [0.1.20] - 2026-03-08
### Changed
- Refactored the embedded web UI in the API server to be loaded from a separate `index.html` file instead of a large inline string, improving maintainability.
## [0.1.19] - 2026-03-08
### Added
- Added `POST /unpair` endpoint and "Unpair Device" button in the web UI to remove a Bluetooth device from the host's paired devices.
## [0.1.18] - 2026-03-08
### Added
- Added `POST /pair` endpoint and "Pair Device" button in the web UI to easily pair/trust the printer via `bluetoothctl` for Classic Bluetooth connections.
## [0.1.17] - 2026-03-08
### Added
- Added automatic fallback to BLE connection if Classic Bluetooth (RFCOMM) fails with `[Errno 12] Out of memory`, a common issue on Linux with stale device states.
## [0.1.16] - 2026-03-08
### Fixed
- Corrected typos in the Code128B bit pattern table for characters '$' (ASCII 36) and ')' (ASCII 41), which caused incorrect barcodes to be generated.
## [0.1.15] - 2026-03-07
### Fixed
- Added BLE recovery path for `br-connection-not-supported`: the connector now forces a fresh LE scan target resolution and retries before returning an error.
## [0.1.14] - 2026-03-07
### Fixed
- Removed BLE fallback to raw MAC string when device resolution fails. The connector now requires a discovered LE device object, avoiding BlueZ BR/EDR misclassification that can cause `br-connection-not-supported`.
## [0.1.13] - 2026-03-07
### Fixed
- Treated BLE service-discovery disconnects (`failed to discover services, device disconnected`) as retryable transient errors in the BLE connect loop.
## [0.1.12] - 2026-03-07
### Fixed
- BLE target resolution now prefers discovered Bleak device objects (instead of raw address strings), improving BlueZ LE connection handling on hosts that previously returned `br-connection-not-supported`.
## [0.1.11] - 2026-03-07
### Fixed
- Handled `asyncio.TimeoutError` from BLE connect path so connection timeouts now return mapped API errors (502) instead of unhandled 500 exceptions.
## [0.1.10] - 2026-03-07
### Changed
- Added automatic BLE reconnect retry with linear backoff for transient timeout errors (including `br-connection-timeout`) before returning a failure.
## [0.1.9] - 2026-03-07
### Added
- Added add-on-local changelog at `fichero_printer/CHANGELOG.md` so Home Assistant can display release notes in the add-on UI.
### Changed
- Improved Classic Bluetooth connect logic by trying fallback RFCOMM channels (1-3 plus configured channel) before failing.
## [0.1.8] - 2026-03-07
### Added
- Root URL now serves a built-in printer web interface for Home Assistant with status, info, text printing, and image upload printing.
### Changed
- Swagger docs remain available under `/docs` while the Home Assistant "Open" action now lands on the print UI.
## [0.1.7] - 2026-03-07
### Fixed
- Home Assistant ingress docs now use a custom Swagger UI route with a relative `openapi.json` URL, avoiding `404 /openapi.json` behind ingress prefixes.
### Changed
- Home Assistant add-on now requests `full_access: true` in addition to Bluetooth capabilities to unblock Classic RFCOMM socket access on stricter hosts.
## [0.1.6] - 2026-03-07
### Added
- Added this `CHANGELOG.md` and established a release policy to update version and changelog for every change.
## [0.1.5] - 2026-03-07
### Changed
- Home Assistant add-on now requests `NET_RAW` in addition to `NET_ADMIN` for Classic Bluetooth RFCOMM sockets.
- Add-on documentation updated with Classic permission requirements.
## [0.1.4] - 2026-03-07
### Fixed
- RFCOMM connection under `uvloop` now uses direct Bluetooth socket connect in a worker thread, avoiding address-family resolution issues.
- Classic Bluetooth socket errors are mapped to API-safe printer errors instead of unhandled 500s.
## [0.1.3] - 2026-03-07
### Changed
- Home Assistant add-on metadata updated for ingress/web UI access.
- API root endpoint now redirects to docs in an ingress-compatible way.
- Added attribution for original upstream project and AI-assisted extension note.