9 Commits

Author SHA1 Message Date
Christian Krakau-Louis 8b0d793713 Fix vulnerable musicround dependencies 2026-05-22 23:13:34 +02:00
Christian Krakau-Louis ce97e71239 Add MCP datastore CRUD tools (#11)
Add generic MCP CRUD access for mapped datastore objects and include song usage frequency in song query results.
2026-05-22 11:22:43 +02:00
Christian Krakau-Louis ed57d84199 Add authenticated remote MCP HTTP entrypoint (#10)
Add a bearer-protected streamable HTTP MCP ASGI entrypoint for production deployment.

Includes remote host/origin configuration, health checks, fallback token handling, documentation, and tests covering authentication behavior.

Verified with full local pytest suite and GitHub CI. Copilot review feedback addressed before merge.
2026-05-21 19:06:43 +02:00
Christian Krakau-Louis 74e5e5b531 Add MCP automation interface for quiz round creation (#9)
Add a Quizzical Beats MCP server and automation service for agentic quiz workflows.

Includes tools for catalog lookup/add/import, round creation and naming, MP3/PDF generation and inspection, email delivery, TTS snippet updates, docs, and focused tests.

Deployment intentionally not performed.
2026-05-21 18:18:57 +02:00
copilot-swe-agent[bot] 3d7b325f73 Add comprehensive test suite to reach 31% code coverage
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-12 01:16:36 +00:00
copilot-swe-agent[bot] ee96104f66 refactor: address code review feedback - clean up test imports and add MAIL_PORT validation
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-12 00:18:08 +00:00
copilot-swe-agent[bot] cfe000f030 fix: resolve logical errors, bugs, and security issues across codebase
- Fix is_admin() method shadowing is_admin database column in User model
- Fix check_password() crash when password_hash is None (OAuth-only users)
- Fix SystemSetting.all_settings() formatting error (missing newline)
- Fix MAIL_PORT returning string instead of int in config
- Fix AUTOMATION_TOKEN config formatting (missing newline before comment)
- Fix path traversal vulnerability in serve_user_audio using realpath validation
- Fix weak auth in process.py, replace session check with @login_required
- Fix int() crash on non-numeric priority in import_songs.py
- Add timeout to SMTP connection in email_helper.py
- Add timeouts to external API requests in metadata.py and spotify_helper.py
- Fix security tests to properly reload config module
- Fix metadata test mock data key mismatch (preview_url -> spotify_preview_url)
- Add skip decorator to integration test requiring live API credentials

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-12 00:13:30 +00:00
copilot-swe-agent[bot] 9ea40bec61 Add security fixes and comprehensive documentation
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-06 21:59:19 +00:00
Christian Krakau-Louis 03b982e7c2 Initial clean commit 2025-05-13 08:59:02 +00:00