Files
desklock/CHANGELOG.md
T
jpmschweitzer 78d9b276ee build(make): prove make setup actually works before exiting 0 (T-47)
pip install exiting 0 is not evidence the gateway environment is usable
(D-24) — a resolved-but-broken dependency or a stale venv from another
Python both look identical to a clean install at the point setup exits.
End the target with a cheap positive check instead: collect the test
suite (imports every src module each test pulls in) and confirm ruff
and mypy resolve inside the venv, the only place either binary exists.

Also states explicitly, in a comment, that setup covers the gateway
half only — the firmware half needs `source ~/esp-idf/export.sh` in
every shell, which a Makefile recipe cannot leave sourced in the
caller's shell, so build-firmware sources it itself instead.
2026-08-17 12:04:12 +02:00

65 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
All notable, user-facing changes to DeskLock are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
DeskLock is pre-release and unversioned; entries accumulate under **Unreleased**
until the first tagged release.
## [Unreleased]
### Changed
- One Makefile at the repo root now drives firmware, gateway and sim; `gateway/Makefile` is
removed. `make test` means the same thing from any directory.
- Firmware targets source `~/esp-idf/export.sh` themselves, so `idf.py` resolves without
having to remember. Override the location with `IDF_EXPORT=`.
- `make setup` now proves the gateway environment actually works instead of trusting a
clean `pip install` exit code: it collects the test suite and checks `ruff`/`mypy`
resolve in the venv, and fails the target if any of that is broken (T-47).
## [0.2.2] — 2026-07-19
### Changed
- The gateway's default Tatlock URL is now `http://tatlock:8000` (docker
container name) — the retiring `tatlock.schweitz.internal` domain is gone
from config and docs. Deployments setting `DESKLOCK_TATLOCK_BASE_URL` are
unaffected.
## [0.2.1] — 2026-07-15
### Fixed
- A spoken volume command no longer leaves the face stuck in the thinking
spinner — the feedback gong is a UI cue and no longer holds the busy state,
so the return-to-idle isn't swallowed.
- The butler filler line reads as one phrase instead of two — reworded to "Let
me check on that, sir." to avoid a text-to-speech pause before "for you".
## [0.2.0] — 2026-07-15
### Added
- After a request, the butler immediately says "Let me check on that for you,
sir" and keeps a spinner up while it works, so the long wait isn't dead air.
- Spoken volume commands ("volume up/down", "mute/unmute", "set volume to N",
"this one goes to eleven") are handled instantly on the gateway, bypassing the
assistant — no waiting on a reply just to change the volume.
- Tap the screen to reveal on-screen controls — a microphone button plus volume
down/up and a live level bar, using Phosphor icon glyphs. Tapping the dimmed
backdrop dismisses them.
### Fixed
- Fixed the blue-screen flicker during voice activity — the matrix rain now
renders as cheap pre-rendered sprites, and the DSI clocks/FIFO are tuned, so
the display's memory reads are no longer starved by Wi-Fi and audio DMA.
### Changed
- Volume is now an 011 scale (it goes to eleven) with a gong cue on each change
and a little "11" that floats off the bar at maximum.
- Matrix rain is drawn from a reused pool of pre-rendered streak sprites instead
of live text labels, and eases off while the device is listening or speaking.