New standalone service that receives authenticated HTTP POSTs (e.g. from a
cronjob elsewhere on the home network) and posts them to a Discord channel
via an Incoming Webhook. Fire-and-forget, no dependency on discord-bot's bot
session at all - mirrors alexa-bridge's precedent of a small bridge service
with its own HTTP listener and auth rather than adding an inbound edge to an
existing internal service.
Wires alert-bridge into go.work, CI (changes filter, test job, new
build-alert-bridge job), and the other five Dockerfiles' COPY lines.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Implemented SetTemperature in ClimateService for setting an absolute target temperature.
- Updated ClimateServiceClient and ClimateServiceServer interfaces to include SetTemperature.
- Added corresponding handler and tests for SetTemperature in ClimateGRPC.
- Modified ClimateApp to handle SetTemperature requests without clamping.
- Updated climate.proto to define SetTemperatureRequest message.
- Adjusted Dockerfiles to include alexa-bridge dependencies.
- Implemented the /speak command in Discord bot to synthesize speech using the TTS gateway.
- Added voice handling logic to join voice channels and play synthesized audio.
- Created tests for the new command and voice functionalities.
- Introduced TTSGateway interface for TTS service communication.
- Updated configuration to include TTS gateway address.
- Documented the TTS gateway integration and model artifact distribution process.
- Updated CI workflow to run `go vet` and `go test` for all modules on every push/PR.
- Implemented a `changes` job to rebuild only affected Docker images based on modified paths.
- Introduced caching for Docker builds to speed up subsequent runs by leveraging registry-based cache.
- Modified Dockerfiles for `ai-gateway`, `discord-bot`, `ha-gateway`, and `tts-gateway` to copy `go.mod` and `go.sum` files first, allowing for better caching of dependencies.
- Added `go.sum` file for `tts-gateway` to ensure proper dependency management.
- Ensured that `go mod download` is executed in the correct order to optimize layer caching.
- Added command handler for processing Discord interactions related to lights and switches.
- Implemented command registration for light control commands: list, on, off, and toggle.
- Created a gRPC client for communicating with the home automation gateway.
- Developed application logic for handling light and switch commands, including listing, turning on/off, and toggling lights.
- Introduced telemetry setup for OpenTelemetry integration.
- Added configuration loading for Discord token, gateway address, and OpenTelemetry endpoint.
- Defined core driven ports for interacting with the home automation gateway.