Commit Graph
110 Commits
Author SHA1 Message Date
mmacierzanka 06238b0438 feat: add restart button to player panel to seek to the beginning of the track 2026-09-11 01:26:10 +02:00
mmacierzanka 708e3591ed feat: add bot restart functionality via API and Discord command 2026-09-11 01:21:26 +02:00
mmacierzanka 82746e4c83 chore: update (auto) version in the lock file
Panel / Lint, typy i build (push) Successful in 19s
2026-08-25 00:26:47 +00:00
mmacierzanka 7e78e3cd19 feat: add dashboard icon
Backend / Lint i formatowanie (push) Successful in 4s
Backend / Testy i kontrakt API (push) Successful in 5s
Panel / Lint, typy i build (push) Successful in 19s
Backend / Testowy build obrazu (push) Successful in 14s
4.0.1
2026-08-21 21:53:32 +02:00
mmacierzanka 07041ac881 feat: show optimistic history queue entries 2026-08-21 21:45:25 +02:00
mmacierzanka 473e40f25e fix: connection status test
Panel / Lint, typy i build (push) Successful in 17s
2026-08-21 21:35:56 +02:00
mmacierzanka 7c3fe68d86 fix: ESLint issues
Backend / Testy i kontrakt API (push) Successful in 5s
Backend / Lint i formatowanie (push) Successful in 8s
Panel / Lint, typy i build (push) Failing after 18s
Backend / Testowy build obrazu (push) Successful in 14s
2026-08-21 21:33:43 +02:00
mmacierzanka 9faf27f83d chore: bump project version 2026-08-21 21:32:12 +02:00
mmacierzanka 2a11c70a3e feat: improve styles and layouts for better consistency and responsiveness
Backend / Lint i formatowanie (push) Successful in 3s
Backend / Testy i kontrakt API (push) Successful in 5s
Panel / Lint, typy i build (push) Failing after 9s
Backend / Testowy build obrazu (push) Successful in 9s
2026-08-21 21:29:57 +02:00
mmacierzanka 80470c411e fix: require voice connection to restore queue 2026-08-21 21:14:01 +02:00
mmacierzanka ca17c742c9 feat: add tooltip for progress bar seeking 2026-08-21 21:12:24 +02:00
mmacierzanka 9e568e0581 ŻyrarBOT 4.0 (#3)
Backend / Lint i formatowanie (push) Successful in 4s
Backend / Testy i kontrakt API (push) Successful in 6s
Backend / Testowy build obrazu (push) Successful in 11s
Panel / Lint, typy i build (push) Successful in 22s
4.0
2026-08-21 20:33:54 +02:00
mmacierzanka 7ef0a43693 feat: add playback seeking
Backend / Lint i formatowanie (pull_request) Successful in 4s
Backend / Testy i kontrakt API (pull_request) Successful in 4s
Backend / Testowy build obrazu (pull_request) Successful in 11s
Panel / Lint, typy i build (pull_request) Successful in 21s
2026-08-21 18:53:38 +02:00
mmacierzanka ed13d4af06 fix: advance playback after track completion
Backend / Lint i formatowanie (pull_request) Successful in 4s
Backend / Testy i kontrakt API (pull_request) Successful in 10s
Panel / Lint, typy i build (pull_request) Successful in 19s
Backend / Testowy build obrazu (pull_request) Successful in 9s
2026-08-21 18:39:57 +02:00
mmacierzanka 322087c50e fix: support long filenames in Discord autocomplete 2026-08-21 18:21:18 +02:00
mmacierzanka 07aca60c6d refactor: move Discord theme into bot package 2026-08-21 18:10:22 +02:00
mmacierzanka e2099a76b3 feat: add interactive Discord queue and history actions 2026-08-21 17:52:56 +02:00
mmacierzanka d08db87739 feat: improve Discord player controls and docs 2026-08-21 17:43:19 +02:00
mmacierzanka d287a8c8f2 feat: add interactive Discord player panel 2026-08-21 17:35:48 +02:00
mmacierzanka 90189b3f97 fix: select the requested track after queue end 2026-08-21 17:26:32 +02:00
mmacierzanka b19f3e1923 fix: preserve plays when skipping tracks 2026-08-21 17:26:02 +02:00
mmacierzanka 03611e3226 fix: preserve plays on stop and disconnect 2026-08-21 17:19:36 +02:00
mmacierzanka 6736329603 fix: decrement plays after playback 2026-08-21 17:18:21 +02:00
mmacierzanka d6bd302165 feat: restore the last queue per server
Backend / Lint i formatowanie (pull_request) Successful in 3s
Backend / Testy i kontrakt API (pull_request) Successful in 10s
Panel / Lint, typy i build (pull_request) Successful in 18s
Backend / Testowy build obrazu (pull_request) Successful in 15s
2026-08-21 17:10:40 +02:00
mmacierzanka 3624c152f5 fix: sync volume after external changes 2026-08-21 16:59:11 +02:00
mmacierzanka 21f3a1060c fix: validate uploaded media files
Backend / Lint i formatowanie (pull_request) Successful in 6s
Backend / Testy i kontrakt API (pull_request) Successful in 10s
Backend / Testowy build obrazu (pull_request) Successful in 10s
Panel / Lint, typy i build (pull_request) Successful in 34s
2026-08-21 16:37:41 +02:00
mmacierzanka 004641c9b8 feat: expose per-server default plays setting 2026-08-21 16:32:41 +02:00
mmacierzanka 36621ce261 feat: support direct links to guild views 2026-08-21 16:27:45 +02:00
mmacierzanka 8b340c61f0 feat: add notification channel selector 2026-08-21 16:26:30 +02:00
mmacierzanka cfe9a2fc31 fix: store playback history per Discord server 2026-08-21 16:21:57 +02:00
mmacierzanka 32fd296d9e fix: migrate legacy state to the first Discord server 2026-08-21 16:18:57 +02:00
mmacierzanka 64b428555c refactor: isolate application state per Discord server 2026-08-21 16:14:22 +02:00
mmacierzanka 94be2c7c79 Remove CI cache (has issues)
Backend / Lint i formatowanie (pull_request) Successful in 4s
Backend / Testy i kontrakt API (pull_request) Successful in 4s
Panel / Lint, typy i build (pull_request) Successful in 22s
Backend / Testowy build obrazu (pull_request) Successful in 1m48s
2026-08-21 15:49:55 +02:00
mmacierzanka d946e6b0af Panel na Vue 3 + TypeScript (#2)
Backend / Lint i formatowanie (pull_request) Successful in 4s
Backend / Testowy build obrazu (pull_request) Canceled after 0s
Backend / Testy i kontrakt API (pull_request) Canceled after 28s
Panel / Lint, typy i build (pull_request) Successful in 4m51s
2026-08-21 15:47:31 +02:00
mmacierzanka 6978b23055 Fix frontend CI
Backend / Lint i formatowanie (pull_request) Successful in 4s
Panel / Lint, typy i build (pull_request) Successful in 4m48s
Backend / Testowy build obrazu (pull_request) Canceled after 0s
Backend / Testy i kontrakt API (pull_request) Canceled after 7m8s
2026-08-21 15:38:33 +02:00
mmacierzanka 384770565a refactor: consolidate frontend serving and add health check
Backend / Lint i formatowanie (pull_request) Successful in 4s
Panel / Lint, typy i build (pull_request) Successful in 4m50s
Panel / Testowy build obrazu (pull_request) Failing after 2s
Backend / Testy i kontrakt API (pull_request) Successful in 9m24s
Backend / Testowy build obrazu (pull_request) Successful in 1m38s
2026-08-21 15:29:45 +02:00
mmacierzanka 240120db92 Merge branch 'release/4.0' into refactor/frontend-vue
# Conflicts:
#	.gitignore
#	web.py
2026-08-21 15:15:11 +02:00
mmacierzanka b917041808 Restrukturyzacja backendu w pakiet zyrarbot (#1) 2026-08-21 15:13:09 +02:00
mmacierzanka 2bd19b9703 Fix formatting
Backend / Lint i formatowanie (pull_request) Successful in 5s
Backend / Testy i kontrakt API (pull_request) Successful in 9m24s
Backend / Testowy build obrazu (pull_request) Successful in 4s
2026-08-21 15:01:27 +02:00
mmacierzanka 7e25db9038 Increase playback history capacity
Backend / Lint i formatowanie (pull_request) Failing after 3s
Backend / Testowy build obrazu (pull_request) Canceled after 0s
Backend / Testy i kontrakt API (pull_request) Canceled after 2m16s
2026-08-21 14:59:27 +02:00
mmacierzanka fff320d3f2 Fix song counter and inconsistent queue state 2026-08-21 14:56:29 +02:00
mmacierzanka 4468f96c3b Use pip cache (already configured) when installing packages
Backend / Lint i formatowanie (pull_request) Successful in 3s
Backend / Testy i kontrakt API (pull_request) Successful in 9m25s
Backend / Testowy build obrazu (pull_request) Successful in 6s
2026-08-21 13:50:40 +02:00
mmacierzanka d3a5058fde Formatting, README and other friends
Backend / Lint i formatowanie (pull_request) Successful in 3s
Backend / Testy i kontrakt API (pull_request) Failing after 2m19s
Backend / Testowy build obrazu (pull_request) Skipped
2026-08-21 13:41:38 +02:00
mmacierzanka b9152c41be Rename schemas to requests
Backend / Lint i formatowanie (pull_request) Failing after 4s
Backend / Testowy build obrazu (pull_request) Canceled after 0s
Backend / Testy i kontrakt API (pull_request) Canceled after 3m28s
2026-08-21 13:33:04 +02:00
mmacierzanka e4776d1348 Rename web to api to reflect, that it's not serving the frontend, split FastAPI creation 2026-08-21 13:31:11 +02:00
mmacierzanka d31747e80b refactor: split music cog by responsibility 2026-08-21 13:16:19 +02:00
mmacierzanka d706317dc8 Move web and bot packages to a consolidated ui package 2026-08-21 13:04:23 +02:00
mmacierzanka e21ccb4bb8 Adjust version and main bot class name 2026-08-21 12:55:39 +02:00
lgooseandClaude Bot 1f0a92b6f6 fix(ci): stabilne sprawdzenie proxy w jobie image panelu
Panel / Lint, typy i build (pull_request) Successful in 4m56s
Panel / Testowy build obrazu (pull_request) Successful in 18s
Krok padał na runnerze bez żadnego komunikatu. Powód był podwójny:

- asercja zakładała, że bez backendu nginx odpowie 502, a to zależy od
  tego, jak szybko zawiedzie DNS. Na runnerze zapytanie wisiało 30 sekund,
  aż do domyślnego resolver_timeout.
- grep bez dopasowania kończy się kodem 1, a Gitea uruchamia kroki w
  bash -e -o pipefail, więc podstawienie zmiennej przerywało cały krok,
  zanim zdążył wypisać powód. Lokalnie tego nie było widać, bo zsh nie
  ustawia tych flag.

Zamiast opierać się na tym, że proxy zawiedzie, job stawia teraz atrapę
backendu pod nazwą discord-bot - dokładnie tą, którą wskazuje nginx.conf
i compose.yaml - i sprawdza, że przez proxy wraca treść z atrapy. Test
przechodzi więc wtedy, gdy przekazywanie faktycznie działa, a nie wtedy,
gdy zawodzi w oczekiwany sposób. Sprawdzane jest też /ws.

Pozostałe usztywnienia: limit czasu na każde zapytanie, || true tam, gdzie
brak dopasowania jest poprawnym wynikiem, jawne komunikaty błędów z logiem
kontenera oraz sprzątanie kontenerów i sieci przez trap.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 01:44:07 +02:00
lgooseandClaude Bot c5e016605b ci: pipeline panelu dla Gitea Actions
Panel / Lint, typy i build (pull_request) Successful in 4m55s
Panel / Testowy build obrazu (pull_request) Failing after 49s
Workflow .gitea/workflows/frontend.yaml z dwoma jobami:

- verify  npm ci, ESLint, kontrola typów, build produkcyjny i test dymny
- image   walidacja compose.yaml, build obrazu panelu i sprawdzenie
          działającego kontenera; job czeka na verify

Test dymny działa na zbudowanym artefakcie, a nie na źródłach, więc
sprawdza dokładnie to, co trafia do obrazu.

Job image weryfikuje trzy rzeczy w uruchomionym kontenerze: czy nginx
oddaje panel, czy nieznana ścieżka wraca jako index.html (fallback SPA)
oraz czy /api jest przekazywane do backendu. Backendu w tym kroku nie ma,
więc oczekiwaną odpowiedzią jest błąd bramy - 502 dowodzi, że reguła proxy
istnieje i celuje w usługę discord-bot, podczas gdy 404 oznaczałoby, że
nginx potraktował /api jak ścieżkę aplikacji.

Filtry paths ograniczają uruchomienia do zmian w katalogu frontend,
compose.yaml i samym workflow.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 01:34:55 +02:00