kryten-webqueue 0.38.2__tar.gz → 0.38.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/CHANGELOG.md +25 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/PKG-INFO +1 -1
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/static/css/main.css +41 -47
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/auth/login.html +2 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/pyproject.toml +1 -1
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/.github/workflows/gitleaks.yml +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/.github/workflows/python-publish.yml +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/.github/workflows/release.yml +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/.gitignore +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/.gitleaks.toml +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/.pre-commit-config.yaml +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/AGENT-WORKFLOW-GUIDE.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/AGENTS.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/README.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/config.example.json +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/deploy/kryten-webqueue.service +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/deploy/nginx-queue.conf +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/IMPLEMENTATION_SPEC.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/IMPL_API_GATE.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/IMPL_ECONOMY.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/IMPL_KRYTEN_PY.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/IMPL_ROBOT.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/Kryten-Economy Service Quality Survey Report at v0.13.0.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/Kryten-Webqueue Service Quality Survey Report at v0.27.1.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/Log for incorrect promo insertion problem.txt +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/PLAN_PRESENCE_AND_PROMOS.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/PRE_PLAN_GAPS.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/PRODUCT_PLAN.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/SPEC-Visual-UX-Sprint-August-2026.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/SPEC_ADMIN_ITEM_EDITOR.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/SPEC_CATALOG_ENRICHMENT_PIPELINE.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/SPEC_EMOTE_REHOST.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/SPEC_JOBS_AND_BROWSE.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/UX_POLISH_PLAN.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/__main__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/api_gate/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/api_gate/client.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/app.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/auth/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/auth/otp.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/auth/rate_limit.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/auth/session.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/db/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/db/_catalog.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/db/_connection.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/db/_enrichment.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/db/_feedback.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/db/_people.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/db/_playlists.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/db/_queue.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/db/_watchlist.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/classify.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/normalise.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/pipeline.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/providers.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/report.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/steps/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/steps/art.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/steps/categories.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/steps/meta.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/steps/sync.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/steps/tags.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/steps/title.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/images.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/mediacms.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/sync.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/config.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/cmsutils/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/cmsutils/_common.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/cmsutils/enrichmeta.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/cmsutils/enrichtitles.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/cmsutils/enrichtv.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/cmsutils/fetchurls.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/cmsutils/motdposters.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/cmsutils/playedmovies.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/ytpipe/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/ytpipe/downloader.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/jobs/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/jobs/fetchurls_auth.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/jobs/job_scheduler.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/jobs/manager.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/jobs/rehost_emotes.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/jobs/tasks.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/logging_config.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/playlists/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/playlists/bulk_add.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/playlists/fire.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/playlists/importer.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/playlists/ordering.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/playlists/scheduler.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/promos/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/promos/director.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/queue/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/queue/completion.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/queue/ordering.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/queue/poller.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/queue/presence.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/queue/race_poller.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/queue/shadow.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/admin_catalog.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/admin_feedback.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/admin_job_schedules.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/admin_jobs.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/admin_moderation.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/admin_playlists.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/admin_promos.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/admin_queue.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/admin_schedules.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/auth.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/catalog.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/feedback.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/pages.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/queue.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/user.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/static/js/admin-playlists.js +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/static/js/admin-promos.js +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/static/js/admin-queue-mgmt.js +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/static/js/admin-schedules.js +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/static/js/admin.js +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/static/js/main.js +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/admin/index.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/admin/playlists.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/admin/promos.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/admin/queue_mgmt.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/admin/schedules.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/base.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/catalog/browse.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/catalog/edit_item_modal.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/catalog/item_detail.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/catalog/item_not_found.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/feedback/index.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/queue/index.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/race.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/user/dashboard.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/user/my_list.html +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/ws/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/ws/handler.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/ws/manager.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/scripts/AGENTS.md +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/scripts/patch_mediacms_bulk_facets.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/scripts/patch_mediacms_tags.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/scripts/trigger_enrich.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/__init__.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_classify.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_config_persistence.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_feedback.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_fetchurls_sharepoint.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_people_facets.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_phase1.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_phase2_jobs.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_phase3_jobs.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_phase4_live_fixes.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_playlist_import.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_presence_refund.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_promo_director.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_promo_pool_exclusion.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_providers.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_queue_announce.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_race_poller.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_recently_played_hide.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_save_results_to_playlist.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_schedule_lock.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_search_facets.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_title_normalization.py +0 -0
- {kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/tests/test_watchlist.py +0 -0
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.38.3] - 2026-08-15
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- **Reverted to sans-serif everywhere.** The 0.38.0 serif experiment (Georgia for
|
|
10
|
+
body and headings) was reverted; `--font-body` and `--font-heading` now use the
|
|
11
|
+
same Inter sans stack as the rest of the UI.
|
|
12
|
+
- **Restored the colored light-mode pills.** The 0.38.0 light-mode "contrast"
|
|
13
|
+
overrides that flattened every `.np-chip-*` to solid amber were removed, bringing
|
|
14
|
+
back the mint-green people and peach tag pills in light mode. All pills keep their
|
|
15
|
+
colored translucent styles in both themes.
|
|
16
|
+
- **Pill-shaped badges.** `.qi-badge` and `.job-badge` were rounded from 3px to full
|
|
17
|
+
999px pills to match the catalog/queue chips.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **Login title now centers.** The Channel-Z Unicode title rendered at the default
|
|
22
|
+
h1 size overflowed the 400px auth container (with `white-space: nowrap`), so it
|
|
23
|
+
could not center. It now uses a clamped `font-size` that fits and centers.
|
|
24
|
+
- **Admin jobs list is a real aligned grid.** Previously each row was its own grid,
|
|
25
|
+
so the status/last-run/action columns never lined up. `.jobs-list` is now the
|
|
26
|
+
shared grid and rows use `display: contents`, so buttons and timestamps align in
|
|
27
|
+
columns across every row. Job badges are more visible and the last-run timestamp
|
|
28
|
+
is larger (0.75rem -> 0.9rem).
|
|
29
|
+
|
|
5
30
|
## [0.38.2] - 2026-08-15
|
|
6
31
|
|
|
7
32
|
### Fixed
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
--shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
|
|
22
22
|
--radius: 8px;
|
|
23
23
|
--nav-height: 4rem;
|
|
24
|
-
--font-body:
|
|
25
|
-
--font-heading:
|
|
24
|
+
--font-body: 'Inter', 'Helvetica Neue', 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, sans-serif;
|
|
25
|
+
--font-heading: 'Inter', 'Helvetica Neue', 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, sans-serif;
|
|
26
26
|
--font-ui: 'Inter', 'Helvetica Neue', 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, sans-serif;
|
|
27
27
|
--font-mono: 'Consolas', 'Courier New', monospace;
|
|
28
28
|
}
|
|
@@ -65,35 +65,9 @@
|
|
|
65
65
|
--shadow: 0 4px 12px rgba(60, 40, 0, 0.15);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
/*
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
background: var(--bg-secondary);
|
|
72
|
-
border: 1px solid var(--border);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
:root[data-theme="light"] .np-chip-cat,
|
|
76
|
-
:root[data-theme="light"] .np-chip-tag,
|
|
77
|
-
:root[data-theme="light"] .np-chip-person,
|
|
78
|
-
:root[data-theme="light"] .np-chip-studio {
|
|
79
|
-
background: var(--accent);
|
|
80
|
-
color: var(--accent-text);
|
|
81
|
-
border-color: var(--accent);
|
|
82
|
-
font-weight: 600;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
:root[data-theme="light"] .qi-badge,
|
|
86
|
-
:root[data-theme="light"] .badge-paid {
|
|
87
|
-
background: var(--accent);
|
|
88
|
-
color: var(--accent-text);
|
|
89
|
-
font-weight: 600;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
:root[data-theme="light"] .badge-promo {
|
|
93
|
-
background: var(--warning);
|
|
94
|
-
color: #ffffff;
|
|
95
|
-
font-weight: 600;
|
|
96
|
-
}
|
|
68
|
+
/* Pills, badges, and chips keep their colored styles in both themes
|
|
69
|
+
(mint-green people, peach tags, etc.). Their translucent backgrounds and
|
|
70
|
+
colored borders read correctly on the light cream surfaces too. */
|
|
97
71
|
|
|
98
72
|
* {
|
|
99
73
|
margin: 0;
|
|
@@ -713,7 +687,7 @@ a:hover {
|
|
|
713
687
|
.qi-badge {
|
|
714
688
|
font-size: 0.85rem;
|
|
715
689
|
padding: 0.2rem 0.6rem;
|
|
716
|
-
border-radius:
|
|
690
|
+
border-radius: 999px;
|
|
717
691
|
background: var(--accent);
|
|
718
692
|
color: var(--accent-text);
|
|
719
693
|
}
|
|
@@ -1310,41 +1284,61 @@ a.np-chip {
|
|
|
1310
1284
|
|
|
1311
1285
|
/* Jobs */
|
|
1312
1286
|
.jobs-list {
|
|
1313
|
-
display:
|
|
1314
|
-
|
|
1315
|
-
|
|
1287
|
+
display: grid;
|
|
1288
|
+
grid-template-columns: minmax(0, 1fr) auto auto;
|
|
1289
|
+
align-items: stretch;
|
|
1290
|
+
gap: 0.4rem 1.25rem;
|
|
1316
1291
|
margin-bottom: 1rem;
|
|
1317
1292
|
}
|
|
1293
|
+
/* Each row spreads its three cells across the shared grid so the status,
|
|
1294
|
+
last-run, and action columns line up across every row. */
|
|
1318
1295
|
.job-row {
|
|
1319
|
-
display:
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
align-items: center;
|
|
1323
|
-
padding: 0.5rem 0.75rem;
|
|
1296
|
+
display: contents;
|
|
1297
|
+
}
|
|
1298
|
+
.job-row > * {
|
|
1324
1299
|
background: var(--bg-card);
|
|
1300
|
+
padding: 0.55rem 0.75rem;
|
|
1325
1301
|
border-radius: var(--radius);
|
|
1302
|
+
display: flex;
|
|
1303
|
+
align-items: center;
|
|
1326
1304
|
}
|
|
1327
1305
|
.job-label {
|
|
1328
1306
|
min-width: 0;
|
|
1307
|
+
gap: 0.4rem;
|
|
1329
1308
|
overflow: hidden;
|
|
1330
|
-
|
|
1309
|
+
}
|
|
1310
|
+
.job-actions {
|
|
1311
|
+
justify-content: flex-end;
|
|
1312
|
+
gap: 0.4rem;
|
|
1331
1313
|
}
|
|
1332
1314
|
.job-badge {
|
|
1333
|
-
font-
|
|
1315
|
+
font-family: var(--font-ui);
|
|
1316
|
+
font-size: 0.8rem;
|
|
1317
|
+
font-weight: 600;
|
|
1334
1318
|
text-transform: uppercase;
|
|
1335
1319
|
letter-spacing: 0.04em;
|
|
1336
|
-
padding: 0.2rem 0.
|
|
1337
|
-
border-radius:
|
|
1338
|
-
background:
|
|
1339
|
-
color: var(--
|
|
1320
|
+
padding: 0.2rem 0.65rem;
|
|
1321
|
+
border-radius: 999px;
|
|
1322
|
+
background: rgba(232, 150, 16, 0.15);
|
|
1323
|
+
color: var(--accent);
|
|
1324
|
+
border: 1px solid var(--accent);
|
|
1340
1325
|
white-space: nowrap;
|
|
1341
1326
|
}
|
|
1342
1327
|
.job-last-run {
|
|
1343
|
-
font-size: 0.
|
|
1328
|
+
font-size: 0.9rem;
|
|
1344
1329
|
color: var(--text-secondary);
|
|
1345
1330
|
white-space: nowrap;
|
|
1346
1331
|
font-variant-numeric: tabular-nums;
|
|
1347
1332
|
}
|
|
1333
|
+
@media (max-width: 640px) {
|
|
1334
|
+
.jobs-list {
|
|
1335
|
+
grid-template-columns: 1fr;
|
|
1336
|
+
gap: 0.25rem;
|
|
1337
|
+
}
|
|
1338
|
+
.job-row > .job-actions {
|
|
1339
|
+
justify-content: flex-start;
|
|
1340
|
+
}
|
|
1341
|
+
}
|
|
1348
1342
|
/* Job Run parameter modal */
|
|
1349
1343
|
.job-params {
|
|
1350
1344
|
display: flex;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/docs/Log for incorrect promo insertion problem.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/classify.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/normalise.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/pipeline.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/providers.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/report.py
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/steps/art.py
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/steps/meta.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/steps/sync.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/steps/tags.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/catalog/enrichment/steps/title.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/cmsutils/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/cmsutils/_common.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/cmsutils/enrichtv.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/cmsutils/fetchurls.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/ytpipe/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/integrations/ytpipe/downloader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/admin_job_schedules.py
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/routes/admin_moderation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/static/js/admin-playlists.js
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/static/js/admin-queue-mgmt.js
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/static/js/admin-schedules.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/admin/index.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/admin/playlists.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/admin/promos.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/admin/queue_mgmt.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/admin/schedules.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/catalog/browse.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/catalog/item_detail.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/feedback/index.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/queue/index.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/user/dashboard.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.38.2 → kryten_webqueue-0.38.3}/kryten_webqueue/templates/user/my_list.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|