af9f8cc01e
feat: migrate to typed messages, drop base64, fix AudioBuffer
...
CI / Lint (pull_request) Failing after 57s
CI / Test (pull_request) Failing after 1m23s
CI / Release (pull_request) Has been skipped
CI / Docker Build & Push (pull_request) Has been skipped
CI / Notify (pull_request) Successful in 1s
- AudioBuffer getAudio(): use ab.totalBytes directly (eliminates triple-copy)
- Decode STTStreamMessage via natsutil.Decode[messages.STTStreamMessage]
- Audio chunks arrive as raw []byte (no base64 decode needed)
- Publish STTTranscription struct (not map[string]any)
- Interrupts use messages.STTInterrupt
- Remove encoding/base64 import
- Add .dockerignore, GOAMD64=v3 in Dockerfile
- All 15 tests pass
2026-02-20 07:11:23 -05:00
2c578aad44
feat: add e2e tests + benchmarks
...
- e2e_test.go: AudioBuffer lifecycle, interrupt detection, concurrent chunks
- Mock Whisper multipart transcription, realistic sine wave RMS validation
- Benchmarks: addChunk 2.7µs, getAudio 155µs, RMS 18µs, VAD 4.9µs
2026-02-20 06:45:22 -05:00
9d4d48e693
feat: rewrite stt-module (HTTP variant) in Go
...
Replace Python streaming STT service with Go for smaller container images.
Local Whisper/ROCm variant (stt_streaming_local.py, Dockerfile.rocm) stays Python.
- AudioBuffer with session state management (listening/responding)
- RMS-based voice activity detection (pure Go, no cgo)
- Interrupt detection during LLM response playback
- JetStream AI_VOICE_STREAM setup
- Session auto-creation and cleanup
- Dockerfile: multi-stage golang:1.25-alpine → scratch
- CI: Gitea Actions with lint/test/release/docker/notify
2026-02-19 18:04:15 -05:00
43109cc931
fix: use config.json auth for Gitea registry login
...
CI / Lint (push) Successful in 32s
CI / Test (push) Successful in 36s
CI / Release (push) Successful in 5s
CI / Docker Build & Push (push) Failing after 1m18s
CI / Notify (push) Successful in 2s
docker login --password-stdin fails on act runner (non-TTY).
Use base64 auth in ~/.docker/config.json instead, matching
the kuberay-images pattern.
v0.0.2
2026-02-14 09:21:47 -05:00
8a5f370b17
fix: replace astral-sh/setup-uv action with shell install
...
CI / Lint (push) Successful in 28s
CI / Test (push) Successful in 41s
CI / Release (push) Successful in 8s
CI / Docker Build & Push (push) Failing after 27s
CI / Notify (push) Successful in 1s
The JS-based GitHub Action doesn't work on Gitea's act runner.
Use curl installer + GITHUB_PATH instead.
v0.0.1
2026-02-13 19:40:50 -05:00
55cd657364
feat: CI pipeline, lint fixes, and Renovate config
...
CI / Docker Build & Push (push) Has been skipped
CI / Notify (push) Successful in 1s
CI / Lint (push) Failing after 9s
CI / Test (push) Successful in 50s
CI / Release (push) Has been skipped
- pyproject.toml with ruff/pytest config (setuptools<81 pin)
- Full test suite (26 tests)
- Gitea Actions CI (lint, test, docker, notify)
- Ruff lint/format fixes across source files
- Renovate config for automated dependency updates
Ref: ADR-0057
2026-02-13 15:33:35 -05:00
8fc5eb1193
feat: add streaming STT service with Whisper backend
...
- stt_streaming.py: HTTP-based STT using external Whisper service
- stt_streaming_local.py: ROCm-based local Whisper inference
- Voice Activity Detection (VAD) with WebRTC
- Interrupt detection for barge-in support
- Session state management (listening/responding)
- OpenTelemetry instrumentation with HyperDX support
- Dockerfile variants for HTTP and ROCm deployments
2026-02-02 06:23:12 -05:00
680e43fe39
Initial commit
2026-02-02 11:10:34 +00:00