| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | net: drop unused import | salmonik | 5 days | 1 | -1/+1 |
| | | |||||
| * | config: make voice recording opt-in | salmonik | 5 days | 1 | -4/+4 |
| | | |||||
| * | net: block private and link-local URLs | salmonik | 5 days | 8 | -1/+151 |
| | | |||||
| * | docker: install ImageMagick for image compress/convert | salmonik | 5 days | 2 | -0/+2 |
| | | |||||
| * | music: announce a directly started track once | salmonik | 5 days | 1 | -8/+10 |
| | | |||||
| * | cron: simplify the first-fire lookup | salmonik | 5 days | 1 | -8/+1 |
| | | |||||
| * | recording: reject a zero-length window | salmonik | 5 days | 2 | -2/+16 |
| | | |||||
| * | cron/triggers: keep pre-scoping rows manageable | salmonik | 5 days | 2 | -8/+15 |
| | | |||||
| * | tts: run piper loading and synthesis on blocking threads | salmonik | 5 days | 1 | -16/+28 |
| | | |||||
| * | processes: add timeouts and keep decoding off the runtime | salmonik | 5 days | 4 | -29/+53 |
| | | |||||
| * | http: add connect and request timeouts | salmonik | 5 days | 5 | -3/+21 |
| | | |||||
| * | tts: bound the audio cache and request length | salmonik | 5 days | 1 | -5/+86 |
| | | |||||
| * | autocomplete: bound the in-memory caches | salmonik | 5 days | 1 | -6/+24 |
| | | |||||
| * | events: never join or move voice just to play TTS | salmonik | 5 days | 1 | -8/+16 |
| | | |||||
| * | recording: keep one buffer per guild | salmonik | 5 days | 3 | -34/+41 |
| | | |||||
| * | triggers: scope groups to the guild that created them | salmonik | 5 days | 4 | -24/+64 |
| | | |||||
| * | cron: scope jobs to the guild that created them | salmonik | 5 days | 2 | -19/+47 |
| | | |||||
| * | commands: gate admin, trigger, cron and recording behind permissions | salmonik | 5 days | 4 | -14/+18 |
| | | |||||
| * | utilities: sanitize filenames and isolate temp operations | salmonik | 5 days | 1 | -48/+105 |
| | | |||||
| * | yt-dlp: ignore configs and stop option injection | salmonik | 5 days | 2 | -3/+16 |
| | | |||||
| * | copyparty: never send the password to foreign hosts | salmonik | 5 days | 4 | -28/+165 |
| | | |||||
| * | say: do not abort if the ephemeral ack is already gone | salmonik | 6 days | 1 | -1/+3 |
| | | |||||
| * | cron: keep scheduled audio silent | salmonik | 6 days | 3 | -3/+12 |
| | | | | | | | | Add a per-track silent flag. Cron already uses play_now (interrupt the current track), but play_next_locked still announced the track to the last known text channel; suppress playing and failure announcements for silent tracks, including when a cron track fails to prepare. | ||||
| * | say: post text as a normal message after an invisible ack | salmonik | 6 days | 1 | -7/+15 |
| | | | | | | | Acknowledge the interaction with a zero-width ephemeral reply, delete it, then send the text through ChannelId::say so it lands as a normal channel message instead of an interaction reply. | ||||
| * | docker: bake espeak-ng data for Piper TTS | salmonik | 11 days | 5 | -9/+47 |
| | | | | | | | | | | | | espeak-rs-sys installs espeak-ng-data into the build tree and compiles that path in as the default, so the runtime image failed with 'phontab: No such file or directory'. Copy the data from the builder to /usr/share and point PIPER_ESPEAKNG_DATA_DIRECTORY there; compose overrides the host path from .env. Also trim trailing slashes from Copyparty base URLs, document that env_file changes need --force-recreate, and clean inline comments in .env.example. | ||||
| * | contextual play should add to the last in the queue | salmonik | 12 days | 1 | -8/+6 |
| | | | | | Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | docker: build and run on Debian trixie | salmonik | 12 days | 4 | -0/+156 |
| | | | | | | | | | | | | Add a multi-stage image that compiles inside Debian trixie and runs on the same glibc/libssl/libopus, avoiding the Arch-built binary failing on Debian. The runtime image installs ffmpeg, qalc, the shared libraries, and the latest yt-dlp zipapp, and runs as uid 1000. compose.yaml mounts data/ and piper/, overrides TTS_MODEL_PATH for the container layout, and builds with host networking because the default Docker bridge DNS cannot resolve crates.io or deb.debian.org on this host. | ||||
| * | music: group playback commands under /music | salmonik | 12 days | 5 | -31/+66 |
| | | | | | | | | | | Graduate grajcuj/skip/queue/stop/join into the /music parent and drop the top-level names. On startup, reconcile global slash commands and delete any that are no longer registered, since Discord otherwise keeps stale commands after a rename or move. Docs updated for the new command layout and queue semantics. | ||||
| * | music: add per-guild queue with now/next/last, skip and queue | salmonik | 12 days | 6 | -269/+790 |
| | | | | | | | | | | | Tracks are queued in memory per guild, defaulting to append (last). Playback auto-advances on TrackEvent::End/Error with a per-track token so manual stops and skips cannot double-advance. /music queue shows the current track followed by pending items. /stop clears the queue. Cron audio now goes through the same MusicState instead of poking the track-handle map directly. | ||||
| * | silence songbird udp_rx decode noise | salmonik | 2026-09-09 | 1 | -1/+6 |
| | | | | | Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | record: 2x gain on mp3 encode | salmonik | 2026-09-09 | 1 | -0/+5 |
| | | |||||
| * | test recorder ring semantics; extract mix_tick | salmonik | 2026-09-09 | 1 | -50/+187 |
| | | |||||
| * | wire recording into voice manager, config, events, /record command | salmonik | 2026-09-09 | 8 | -5/+158 |
| | | |||||
| * | first draft | salmonik | 2026-09-09 | 2 | -0/+410 |
| | | |||||
| * | /grajcuj plays video-like extensions too | salmonik | 2026-09-09 | 2 | -9/+9 |
| | | | | | Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | message-contextual /grajcuj | salmonik | 2026-09-09 | 3 | -13/+58 |
| | | | | | Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | assistant replies to the message | salmonik | 2026-09-09 | 3 | -4/+4 |
| | | | | | Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | make /grajcuj w\ compress finally work as compressing a file and then | salmonik | 2026-09-09 | 4 | -48/+132 |
| | | | | | | | /grajcuj'ing Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | feat: piper now not a subprocess, cache system for TTS | salmonik | 2026-09-05 | 12 | -175/+762 |
| | | |||||
| * | remove ` from TTS and make events use lang.rs | salmonik | 2026-09-03 | 2 | -31/+108 |
| | | | | | Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | fix: cosmetic changes | salmonik | 2026-09-02 | 1 | -50/+47 |
| | | | | | Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | fix: enable wav support | salmonik | 2026-08-19 | 2 | -7/+38 |
| | | |||||
| * | feat: leaderboads | salmonik | 2026-08-19 | 7 | -3/+523 |
| | | |||||
| * | fix: clear voice_activity upon starting | salmonik | 2026-08-19 | 1 | -0/+4 |
| | | | | | this lets stale records from abrupt stopping be deleted | ||||
| * | fix: Various cron fixes | salmonik | 2026-08-19 | 5 | -17/+73 |
| | | | | | | Not saving full URL Not using autocompletion content, just label | ||||
| * | feat: local TTS via piper subprocess with Google fallback | salmonik | 2026-08-18 | 13 | -95/+308 |
| | | | | | | | | | | | | - New src/tts.rs: centralize TTS in synthesize(config, http_client, text) Piper subprocess primary, Google Translate fallback on error/missing - TTS_MODEL_PATH/TTS_VOICE env config (defaults to pl_PL-bass-high) - Fix Unknown interaction errors: spawn play_tts_in_channel in background so voice-state TTS no longer blocks the shard event loop (3s Discord limit) - Best-effort confirmation replies in /tts to prevent error cascade - Custom on_error handler: graceful interaction-expired error handling - Comprehensive tracing logging (engine, model, duration, stderr) | ||||
| * | fir auto completion and send file in the response body upon grajcuj file | salmonik | 2026-07-31 | 6 | -22/+69 |
| | | |||||
| * | fix: auto completion timing out before ready + fix preexisting warns | salmonik | 2026-07-30 | 12 | -129/+333 |
| | | |||||
| * | fix assistant and senator | salmonik | 2026-07-13 | 5 | -74/+117 |
| | | | | | Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | make cron follow local time zone | salmonik | 2026-07-10 | 1 | -11/+18 |
| | | | | | Signed-off-by: salmonik <raisersoft@proton.me> | ||||
