| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | tts: attach the generated WAV without a temp file | salmonik | 4 days | 1 | -11/+3 |
| | | |||||
| * | qr: cap image dimensions and allocation | salmonik | 4 days | 1 | -2/+12 |
| | | |||||
| * | downloads: cap yt-dlp media size | salmonik | 4 days | 1 | -0/+15 |
| | | |||||
| * | net: block private and link-local URLs | salmonik | 4 days | 3 | -0/+12 |
| | | |||||
| * | processes: add timeouts and keep decoding off the runtime | salmonik | 4 days | 3 | -13/+33 |
| | | |||||
| * | http: add connect and request timeouts | salmonik | 4 days | 1 | -0/+3 |
| | | |||||
| * | recording: keep one buffer per guild | salmonik | 4 days | 1 | -3/+4 |
| | | |||||
| * | triggers: scope groups to the guild that created them | salmonik | 4 days | 2 | -7/+15 |
| | | |||||
| * | cron: scope jobs to the guild that created them | salmonik | 4 days | 1 | -4/+12 |
| | | |||||
| * | commands: gate admin, trigger, cron and recording behind permissions | salmonik | 4 days | 4 | -14/+18 |
| | | |||||
| * | utilities: sanitize filenames and isolate temp operations | salmonik | 4 days | 1 | -48/+105 |
| | | |||||
| * | yt-dlp: ignore configs and stop option injection | salmonik | 4 days | 1 | -2/+6 |
| | | |||||
| * | copyparty: never send the password to foreign hosts | salmonik | 4 days | 1 | -2/+6 |
| | | |||||
| * | 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 | 1 | -0/+1 |
| | | | | | | | | 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. | ||||
| * | contextual play should add to the last in the queue | salmonik | 12 days | 1 | -8/+6 |
| | | | | | Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | music: group playback commands under /music | salmonik | 12 days | 1 | -21/+7 |
| | | | | | | | | | | 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 | 2 | -217/+140 |
| | | | | | | | | | | | 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. | ||||
| * | wire recording into voice manager, config, events, /record command | salmonik | 2026-09-09 | 1 | -0/+2 |
| | | |||||
| * | first draft | salmonik | 2026-09-09 | 1 | -0/+102 |
| | | |||||
| * | /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 | 2 | -13/+57 |
| | | | | | Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | assistant replies to the message | salmonik | 2026-09-09 | 1 | -1/+1 |
| | | | | | Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | make /grajcuj w\ compress finally work as compressing a file and then | salmonik | 2026-09-09 | 2 | -8/+85 |
| | | | | | | | /grajcuj'ing Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | feat: piper now not a subprocess, cache system for TTS | salmonik | 2026-09-05 | 2 | -10/+9 |
| | | |||||
| * | feat: leaderboads | salmonik | 2026-08-19 | 2 | -0/+331 |
| | | |||||
| * | fix: Various cron fixes | salmonik | 2026-08-19 | 1 | -1/+11 |
| | | | | | | Not saving full URL Not using autocompletion content, just label | ||||
| * | feat: local TTS via piper subprocess with Google fallback | salmonik | 2026-08-18 | 2 | -51/+22 |
| | | | | | | | | | | | | - 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 | 1 | -2/+34 |
| | | |||||
| * | fix: auto completion timing out before ready + fix preexisting warns | salmonik | 2026-07-30 | 6 | -98/+189 |
| | | |||||
| * | fix assistant and senator | salmonik | 2026-07-13 | 1 | -15/+3 |
| | | | | | Signed-off-by: salmonik <salmonik@tuta.io> | ||||
| * | search for mp4's too | salmonik | 2026-07-09 | 1 | -1/+5 |
| | | | | | Signed-off-by: salmonik <raisersoft@proton.me> | ||||
| * | truncate search results | salmonik | 2026-07-08 | 1 | -14/+17 |
| | | | | | Signed-off-by: salmonik <raisersoft@proton.me> | ||||
| * | remember links during audio file completion | salmonik | 2026-07-08 | 1 | -4/+6 |
| | | | | | Signed-off-by: salmonik <raisersoft@proton.me> | ||||
| * | OPEN THE RUST GATES | salmonik | 2026-07-08 | 11 | -0/+2308 |
| Signed-off-by: salmonik <raisersoft@proton.me> | |||||
