Skip to content

chore: update dependencies (4 packages)#298

Merged
SimplicityGuy merged 4 commits intomainfrom
automation/updates
Apr 13, 2026
Merged

chore: update dependencies (4 packages)#298
SimplicityGuy merged 4 commits intomainfrom
automation/updates

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

🤖 Automated Dependency Update

This PR was automatically generated by the weekly dependency update workflow.

📊 Update Summary

�[1;36m📝  Update Summary�[0m
�[1;36m============================================================�[0m

📄 File Updates:
  • Cargo.lock: Updated to latest compatible versions
  • explore/package-lock.json: Updated npm lockfile
  • explore/package.json: Updated npm dependencies

🔒 Security (CVE Sweep):
  • No ignored CVEs to sweep

📋 Changes Made

  • ✅ Updated dependencies to latest compatible versions
  • 🔒 All security patches applied
  • 🧪 Tests have been run automatically

🔍 Manual Verification Required

Before merging, please:

  1. Review dependency changes: Check the Files tab for uv.lock changes
  2. Check CI status: Ensure all checks pass
  3. Test locally (optional):
    git checkout automation/updates
    docker-compose build --no-cache
    docker-compose up -d
    docker-compose ps  # All services should be "healthy"
  4. Review security advisories:
    uv run pip-audit

📝 Notes

  • This update was triggered by: schedule
  • Major upgrades: false
  • Python update: false

Full update output

�[1;36m🚀  Starting Project Update�[0m
�[1;36m============================================================�[0m

�[1;36m🔍  Verifying Project Components�[0m
�[1;36m============================================================�[0m
�[0;34mℹ️  [INFO]�[0m Checking Python configuration files...
�[0;34mℹ️  [INFO]�[0m Checking Dockerfiles...
�[0;34mℹ️  [INFO]�[0m Found Rust extractor (Cargo.toml)
�[0;32m✅  [SUCCESS]�[0m Found 23/23 expected components
�[0;32m✅  [SUCCESS]�[0m All expected components found!


�[1;36m🐳  Updating UV Version�[0m
�[1;36m============================================================�[0m
�[0;34mℹ️  [INFO]�[0m Latest UV version: 0.11.6
�[0;34mℹ️  [INFO]�[0m Latest setup-uv action: v8.0.0 (commit: cec2083)
�[0;32m✅  [SUCCESS]�[0m UV version in Dockerfiles is already up to date (0.11.6)
�[0;34mℹ️  [INFO]�[0m Checking GitHub workflows for setup-uv updates...
�[0;32m✅  [SUCCESS]�[0m GitHub workflows are already up to date

�[1;36m🪝  Updating Pre-commit Hooks�[0m
�[1;36m============================================================�[0m
�[1;33m⚠️  [WARNING]�[0m pre-commit not installed, skipping hook updates

�[1;36m📦  Updating ALL Python Dependencies�[0m
�[1;36m============================================================�[0m
�[0;34mℹ️  [INFO]�[0m Checking for uv updates...
uv self update
error: Self-update is only available for uv binaries installed via the standalone installation scripts.

If you installed uv with pip, brew, or another package manager, update uv with `pip install --upgrade`, `brew upgrade`, or similar.
error: Recipe `update-uv` failed on line 99 with exit code 2
�[1;33m⚠️  [WARNING]�[0m Could not update uv (may already be latest)
�[0;34mℹ️  [INFO]�[0m Updating ALL dependency types:
�[0;34mℹ️  [INFO]�[0m   • Core dependencies ([project] dependencies)
�[0;34mℹ️  [INFO]�[0m   • Optional dependencies ([project.optional-dependencies])
�[0;34mℹ️  [INFO]�[0m   • Dev dependencies ([dependency-groups])
�[0;34mℹ️  [INFO]�[0m   • Build dependencies ([build-system])
�[0;34mℹ️  [INFO]�[0m Upgrading ALL dependencies to latest versions (respecting >= constraints)
�[0;34mℹ️  [INFO]�[0m Note: With >= constraints, this includes major upgrades. Use specific version pins to restrict.
uv lock --upgrade
Resolved 150 packages in 2.20s
Updated fakeredis v2.35.0 -> v2.35.1
Updated mypy v1.20.0 -> v1.20.1
Updated rich v14.3.4 -> v15.0.0
�[0;32m✅  [SUCCESS]�[0m ALL dependencies compiled successfully
�[0;34mℹ️  [INFO]�[0m Syncing ALL upgraded dependencies (including optional and dev)...
uv sync --all-extras --dev
Resolved 150 packages in 4ms
   Building discogsography @ file:///home/runner/work/discogsography/discogsography
Downloading mypy (14.0MiB)
 Downloaded mypy
      Built discogsography @ file:///home/runner/work/discogsography/discogsography
Prepared 4 packages in 594ms
Uninstalled 15 packages in 48ms
Installed 4 packages in 28ms
 ~ discogsography==0.1.0 (from file:///home/runner/work/discogsography/discogsography)
 - discogsography-api==0.1.0 (from file:///home/runner/work/discogsography/discogsography/api)
 - discogsography-brainzgraphinator==0.1.0 (from file:///home/runner/work/discogsography/discogsography/brainzgraphinator)
 - discogsography-brainztableinator==0.1.0 (from file:///home/runner/work/discogsography/discogsography/brainztableinator)
 - discogsography-common==0.1.0 (from file:///home/runner/work/discogsography/discogsography/common)
 - discogsography-dashboard==0.1.0 (from file:///home/runner/work/discogsography/discogsography/dashboard)
 - discogsography-explore==0.1.0 (from file:///home/runner/work/discogsography/discogsography/explore)
 - discogsography-graphinator==0.1.0 (from file:///home/runner/work/discogsography/discogsography/graphinator)
 - discogsography-mcp==0.1.0 (from file:///home/runner/work/discogsography/discogsography/mcp-server)
 - discogsography-schema-init==0.1.0 (from file:///home/runner/work/discogsography/discogsography/schema-init)
 - discogsography-tableinator==0.1.0 (from file:///home/runner/work/discogsography/discogsography/tableinator)
 - fakeredis==2.35.0
 + fakeredis==2.35.1
 - insights==0.1.0 (from file:///home/runner/work/discogsography/discogsography/insights)
 - mypy==1.20.0
 + mypy==1.20.1
 - rich==14.3.4
 + rich==15.0.0
�[0;32m✅  [SUCCESS]�[0m ALL dependencies synced successfully
�[0;32m✅  [SUCCESS]�[0m Completed Python dependency updates

�[1;36m🦀  Updating Rust Dependencies�[0m
�[1;36m============================================================�[0m
�[0;34mℹ️  [INFO]�[0m Updating Cargo.lock to latest compatible versions (within Cargo.toml constraints)
�[0;34mℹ️  [INFO]�[0m   Run with --major to also update Cargo.toml version requirements
�[0;34mℹ️  [INFO]�[0m Updating Cargo.lock...
cd extractor && cargo update
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /home/runner/work/discogsography/discogsography/extractor/Cargo.toml
workspace: /home/runner/work/discogsography/discogsography/Cargo.toml
    Updating crates.io index
     Locking 4 packages to latest compatible versions
    Updating hyper-rustls v0.27.7 -> v0.27.8
    Updating libc v0.2.184 -> v0.2.185
    Updating pkg-config v0.3.32 -> v0.3.33
    Updating rustls v0.23.37 -> v0.23.38
note: pass `--verbose` to see 2 unchanged dependencies behind latest
�[0;32m✅  [SUCCESS]�[0m Cargo.lock updated with latest compatible versions
�[0;32m✅  [SUCCESS]�[0m Completed Rust dependency updates

�[1;36m📦  Updating Node.js Dependencies�[0m
�[1;36m============================================================�[0m
�[0;34mℹ️  [INFO]�[0m Updating npm packages in explore/ (via just for single-source-of-truth)...
cd explore && npm update --save

added 229 packages, and audited 230 packages in 10s

45 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
�[0;32m✅  [SUCCESS]�[0m npm packages updated successfully

�[1;36m✅  Verifying Dependency Updates�[0m
�[1;36m============================================================�[0m
�[0;34mℹ️  [INFO]�[0m All dependency types have been updated:
�[0;32m✅  [SUCCESS]�[0m ✓ Python core dependencies ([project] dependencies)
�[0;32m✅  [SUCCESS]�[0m ✓ Python optional dependencies ([project.optional-dependencies])
�[0;32m✅  [SUCCESS]�[0m ✓ Python dev dependencies ([dependency-groups])
�[0;32m✅  [SUCCESS]�[0m ✓ Python build dependencies ([build-system])
�[0;32m✅  [SUCCESS]�[0m ✓ Rust dependencies (Cargo.lock updated within existing constraints)
�[0;32m✅  [SUCCESS]�[0m ✓ Node.js dependencies (explore/package.json + package-lock.json)
�[0;32m✅  [SUCCESS]�[0m ✓ Pre-commit hooks and their dependencies
�[0;32m✅  [SUCCESS]�[0m ✓ UV package manager in Dockerfiles
�[0;32m✅  [SUCCESS]�[0m ✓ GitHub Actions dependencies
�[0;34mℹ️  [INFO]�[0m Run 'uv tree --outdated' to verify all Python packages are up to date
�[0;34mℹ️  [INFO]�[0m Run 'cd extractor && cargo update --dry-run' to verify Rust crates

�[1;36m🔍  Sweeping pip-audit Ignores�[0m
�[1;36m============================================================�[0m
�[0;32m✅  [SUCCESS]�[0m No vulnerability ignores to sweep
�[0;34mℹ️  [INFO]�[0m osv-scanner not installed locally, skipping osv-scanner ignore sweep

�[1;36m🧪  Running Tests�[0m
�[1;36m============================================================�[0m
�[0;34mℹ️  [INFO]�[0m Running linters...
uv run pre-commit run --all-files
[INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Initializing environment for https://github.com/python-jsonschema/check-jsonschema.
[INFO] Initializing environment for https://github.com/astral-sh/ruff-pre-commit.
[INFO] Initializing environment for https://github.com/PyCQA/bandit.
[INFO] Initializing environment for https://github.com/hadolint/hadolint.
[INFO] Initializing environment for https://github.com/IamTheFij/docker-pre-commit.
[INFO] Initializing environment for https://github.com/rhysd/actionlint.
[INFO] Initializing environment for https://github.com/adrienverge/yamllint.
[INFO] Initializing environment for https://github.com/shellcheck-py/shellcheck-py.
[INFO] Initializing environment for https://github.com/scop/pre-commit-shfmt.
[INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/python-jsonschema/check-jsonschema.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/astral-sh/ruff-pre-commit.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/PyCQA/bandit.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/rhysd/actionlint.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/adrienverge/yamllint.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/shellcheck-py/shellcheck-py.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/scop/pre-commit-shfmt.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
check for added large files...................................................Passed
check that executables have shebangs..........................................Passed
check json....................................................................Passed
check for merge conflicts.....................................................Passed
check that scripts with shebangs are executable...............................Passed
check toml....................................................................Passed
check yaml....................................................................Passed
detect aws credentials........................................................Passed
detect private key............................................................Passed
fix end of files..............................................................Passed
mixed line ending.............................................................Passed
trim trailing whitespace......................................................Passed
pretty format json............................................................Passed
Validate GitHub Workflows.....................................................Passed
Validate GitHub Actions.......................................................Passed
ruff (legacy alias)...........................................................Passed
ruff format...................................................................Passed
bandit........................................................................Passed
Lint Dockerfiles..............................................................Failed
- hook id: hadolint
- exit code: 1

Executable `hadolint` not found

Validate docker compose files.................................................Passed
Lint GitHub Actions workflow files............................................Passed
yamllint......................................................................Passed
shellcheck....................................................................Passed
Check shell style with shfmt for database scripts.............................Passed
Check shell style with shfmt for infrastructure scripts.......................Passed
Check shell style with shfmt for project scripts..............................Passed
mypy..........................................................................Passed
cargo fmt.....................................................................Passed
cargo clippy..................................................................Passed
error: Recipe `lint` failed on line 133 with exit code 1
�[1;33m⚠️  [WARNING]�[0m Linting failed - review the changes
�[0;34mℹ️  [INFO]�[0m Running Python tests...
uv run pytest -m 'not e2e'
bringing up nodes...
bringing up nodes...

........................................................................ [  2%]
........................................................................ [  4%]
........................................................................ [  7%]
........................................................................ [  9%]
........................................................................ [ 11%]
........................................................................ [ 14%]
........................................................................ [ 16%]
........................................................................ [ 18%]
........................................................................ [ 21%]
........................................................................ [ 23%]
........................................................................ [ 26%]
........................................................................ [ 28%]
........................................................................ [ 30%]
........................................................................ [ 33%]
........................................................................ [ 35%]
........................................................................ [ 37%]
........................................................................ [ 40%]
........................................................................ [ 42%]
........................................................................ [ 45%]
........................................................................ [ 47%]
........................................................................ [ 49%]
........................................................................ [ 52%]
........................................................................ [ 54%]
........................................................................ [ 56%]
........................................................................ [ 59%]
........................................................................ [ 61%]
........................................................................ [ 64%]
........................................................................ [ 66%]
........................................................................ [ 68%]
........................................................................ [ 71%]
........................................................................ [ 73%]
........................................................................ [ 75%]
........................................................................ [ 78%]
........................................................................ [ 80%]
........................................................................ [ 83%]
........................................................................ [ 85%]
........................................................................ [ 87%]
........................................................................ [ 90%]
........................................................................ [ 92%]
........................................................................ [ 94%]
........................................................................ [ 97%]
........................................................................ [ 99%]
............                                                             [100%]
=============================== warnings summary ===============================
tests/test_batch_performance.py:385
tests/test_batch_performance.py:385
  /home/runner/work/discogsography/discogsography/tests/test_batch_performance.py:385: PytestUnknownMarkWarning: Unknown pytest.mark.benchmark - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.benchmark

tests/brainztableinator/test_brainztableinator.py::TestOnDataMessage::test_database_error_nacks_with_requeue
  /home/runner/work/discogsography/discogsography/brainztableinator/brainztableinator.py:753: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    async with conn.transaction():
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/brainztableinator/test_brainztableinator.py::TestScheduleConsumerCancellation::test_cancels_existing_scheduled_task
  /home/runner/work/discogsography/discogsography/brainztableinator/brainztableinator.py:202: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    consumer_cancel_tasks[data_type].cancel()
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/brainztableinator/test_brainztableinator.py::TestMain::test_main_execution
tests/brainztableinator/test_brainztableinator.py::TestMainEdgeCases::test_main_pool_close_error
  /home/runner/work/discogsography/discogsography/brainztableinator/brainztableinator.py:1127: RuntimeWarning: coroutine 'Event.wait' was never awaited
    continue
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/brainztableinator/test_brainztableinator.py::TestMainEdgeCases::test_main_keyboard_interrupt
  /home/runner/work/discogsography/discogsography/brainztableinator/brainztableinator.py:1130: RuntimeWarning: coroutine 'Event.wait' was never awaited
    logger.info("🛑 Received interrupt signal, shutting down gracefully")
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/brainztableinator/test_brainztableinator.py::TestMainEdgeCases::test_main_keyboard_interrupt
tests/brainztableinator/test_brainztableinator.py::TestMainEdgeCases::test_main_pool_close_error
  /home/runner/work/discogsography/discogsography/brainztableinator/brainztableinator.py:1146: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    task.cancel()
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/brainzgraphinator/test_brainzgraphinator.py::TestScheduleConsumerCancellation::test_cancels_existing_scheduled_task
  /home/runner/work/discogsography/discogsography/brainzgraphinator/brainzgraphinator.py:216: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    consumer_cancel_tasks[data_type].cancel()
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/graphinator/test_graphinator.py::TestMain::test_main_execution
tests/graphinator/test_graphinator.py::TestMainBatchProcessorFlushError::test_batch_processor_flush_error_logs
tests/graphinator/test_graphinator.py::TestMainNeo4jCloseError::test_neo4j_close_error_logs_warning
  /home/runner/work/discogsography/discogsography/graphinator/graphinator.py:1522: RuntimeWarning: coroutine 'Event.wait' was never awaited
    continue
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/graphinator/test_graphinator.py::TestScheduleConsumerCancellation::test_cancels_existing_scheduled_task
  /home/runner/work/discogsography/discogsography/graphinator/graphinator.py:200: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    consumer_cancel_tasks[data_type].cancel()
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/tableinator/test_tableinator.py::TestScheduleConsumerCancellation::test_cancels_existing_scheduled_task
  /home/runner/work/discogsography/discogsography/tableinator/tableinator.py:212: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    consumer_cancel_tasks[data_type].cancel()
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/api/test_admin_endpoints.py::TestTrackExtraction::test_cancelled
  /home/runner/work/discogsography/discogsography/api/routers/admin.py:419: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    async with _pool.connection() as conn, conn.cursor(row_factory=dict_row) as cur:
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/api/test_admin_endpoints.py::TestQueueHistory::test_invalid_range_returns_422
tests/api/test_admin_endpoints.py::TestHealthHistory::test_invalid_range_returns_422
  /home/runner/work/discogsography/discogsography/.venv/lib/python3.13/site-packages/fastapi/routing.py:328: DeprecationWarning: 'HTTP_422_UNPROCESSABLE_ENTITY' is deprecated. Use 'HTTP_422_UNPROCESSABLE_CONTENT' instead.
    return await dependant.call(**values)

tests/dashboard/test_dashboard_app.py::TestDashboardAppStartup::test_startup_error
tests/dashboard/test_dashboard_app.py::TestDashboardAppMetrics::test_collect_metrics_loop
  /opt/hostedtoolcache/Python/3.13.12/x64/lib/python3.13/unittest/mock.py:2247: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    def __init__(self, name, parent):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/dashboard/test_dashboard_app.py::TestPrometheusMetricsInitialization::test_metrics_already_registered
  /home/runner/work/discogsography/discogsography/.venv/lib/python3.13/site-packages/pydantic/_internal/_generate_schema.py:795: RuntimeWarning: coroutine 'DashboardApp.collect_metrics_loop' was never awaited
    chain(
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/api/test_sync.py::TestTriggerSyncEndpoint::test_trigger_sync_sync_record_creation_fails_500
tests/api/test_sync.py::TestSyncRedisCooldown::test_trigger_sync_passes_encryption_key
tests/api/test_admin_queries.py::TestGetAuditLog::test_returns_paginated_entries
  /opt/hostedtoolcache/Python/3.13.12/x64/lib/python3.13/unittest/mock.py:2247: RuntimeWarning: coroutine 'run_full_sync' was never awaited
    def __init__(self, name, parent):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/schema-init/test_schema_init.py::TestInitNeo4jPartialFailure::test_partial_failures_returns_false
  /home/runner/work/discogsography/discogsography/schema-init/schema_init.py:133: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    async with driver.session(database="neo4j") as session:
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/dashboard/test_dashboard_api.py::TestDashboardAPI::test_metrics_endpoint
  /home/runner/work/discogsography/discogsography/dashboard/dashboard.py:381: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    async with conn.cursor() as cur:
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/dashboard/test_dashboard_api.py::TestDashboardAPI::test_metrics_endpoint
  /home/runner/work/discogsography/discogsography/dashboard/dashboard.py:430: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    async with self.neo4j_driver.session() as session:
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
3036 passed, 27 warnings in 77.63s (0:01:17)
�[0;32m✅  [SUCCESS]�[0m Python tests passed
�[0;34mℹ️  [INFO]�[0m Installing JavaScript dependencies...
cd explore && npm ci

added 231 packages, and audited 232 packages in 2s

46 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
�[0;34mℹ️  [INFO]�[0m Running JavaScript tests...
cd explore && npx vitest run

�[1m�[30m�[46m RUN �[49m�[39m�[22m �[36mv4.1.4 �[39m�[90m/home/runner/work/discogsography/discogsography/explore�[39m

 �[32m✓�[39m __tests__/graph.test.js �[2m(�[22m�[2m87 tests�[22m�[2m)�[22m�[33m 634�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/credits.test.js �[2m(�[22m�[2m115 tests�[22m�[2m)�[22m�[33m 759�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/api-client.test.js �[2m(�[22m�[2m113 tests�[22m�[2m)�[22m�[32m 256�[2mms�[22m�[39m
Not implemented: Window's alert() method
Not implemented: Window's alert() method
 �[32m✓�[39m __tests__/app.test.js �[2m(�[22m�[2m204 tests�[22m�[2m)�[22m�[33m 2405�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/user-panes.test.js �[2m(�[22m�[2m114 tests�[22m�[2m)�[22m�[33m 608�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/nlq.test.js �[2m(�[22m�[2m68 tests�[22m�[2m)�[22m�[32m 212�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/settings.test.js �[2m(�[22m�[2m49 tests�[22m�[2m)�[22m�[32m 297�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/search.test.js �[2m(�[22m�[2m29 tests�[22m�[2m)�[22m�[33m 655�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/insights.test.js �[2m(�[22m�[2m49 tests�[22m�[2m)�[22m�[32m 168�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/path-finder.test.js �[2m(�[22m�[2m18 tests�[22m�[2m)�[22m�[32m 223�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/autocomplete.test.js �[2m(�[22m�[2m25 tests�[22m�[2m)�[22m�[32m 89�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/collaborators.test.js �[2m(�[22m�[2m15 tests�[22m�[2m)�[22m�[32m 72�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/trends.test.js �[2m(�[22m�[2m24 tests�[22m�[2m)�[22m�[32m 50�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/genre-tree.test.js �[2m(�[22m�[2m15 tests�[22m�[2m)�[22m�[32m 86�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/auth.test.js �[2m(�[22m�[2m20 tests�[22m�[2m)�[22m�[32m 15�[2mms�[22m�[39m
 �[32m✓�[39m __tests__/theme.test.js �[2m(�[22m�[2m8 tests�[22m�[2m)�[22m�[32m 24�[2mms�[22m�[39m

�[2m Test Files �[22m �[1m�[32m16 passed�[39m�[22m�[90m (16)�[39m
�[2m      Tests �[22m �[1m�[32m953 passed�[39m�[22m�[90m (953)�[39m
�[2m   Start at �[22m 10:47:12
�[2m   Duration �[22m 9.44s�[2m (transform 614ms, setup 0ms, import 1.18s, tests 6.55s, environment 16.22s)�[22m

�[0;32m✅  [SUCCESS]�[0m JavaScript tests passed
�[0;34mℹ️  [INFO]�[0m Running Rust tests...
cd extractor && cargo test
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /home/runner/work/discogsography/discogsography/extractor/Cargo.toml
workspace: /home/runner/work/discogsography/discogsography/Cargo.toml
   Compiling unicode-ident v1.0.24
   Compiling cfg-if v1.0.4
   Compiling libc v0.2.185
   Compiling memchr v2.8.0
   Compiling serde_core v1.0.228
   Compiling proc-macro2 v1.0.106
   Compiling quote v1.0.45
   Compiling itoa v1.0.18
   Compiling syn v2.0.117
   Compiling once_cell v1.21.4
   Compiling typenum v1.19.0
   Compiling jobserver v0.1.34
   Compiling futures-core v0.3.32
   Compiling smallvec v1.15.1
   Compiling cc v1.2.60
   Compiling pin-project-lite v0.2.17
   Compiling scopeguard v1.2.0
   Compiling lock_api v0.4.14
   Compiling generic-array v0.14.7
   Compiling bytes v1.11.1
   Compiling zeroize v1.8.2
   Compiling parking_lot_core v0.9.12
   Compiling parking_lot v0.12.5
   Compiling errno v0.3.14
   Compiling subtle v2.6.1
   Compiling log v0.4.29
   Compiling signal-hook-registry v1.4.8
   Compiling crypto-common v0.1.7
   Compiling socket2 v0.6.3
   Compiling mio v1.2.0
   Compiling futures-io v0.3.32
   Compiling cmake v0.1.58
   Compiling stable_deref_trait v1.2.1
   Compiling tracing-core v0.1.36
   Compiling futures-sink v0.3.32
   Compiling aws-lc-sys v0.39.1
   Compiling num-traits v0.2.19
   Compiling synstructure v0.13.2
   Compiling zmij v1.0.21
   Compiling block-padding v0.3.3
   Compiling inout v0.1.4
   Compiling serde_json v1.0.149
   Compiling rustls-pki-types v1.14.0
   Compiling block-buffer v0.10.4
   Compiling slab v0.4.12
   Compiling digest v0.10.7
   Compiling cipher v0.4.4
   Compiling futures-channel v0.3.32
   Compiling serde_derive v1.0.228
   Compiling displaydoc v0.2.5
   Compiling zerofrom-derive v0.1.7
   Compiling tokio-macros v2.7.0
   Compiling tokio v1.51.1
   Compiling zerofrom v0.1.7
   Compiling yoke-derive v0.8.2
   Compiling yoke v0.8.2
   Compiling zerovec-derive v0.11.3
   Compiling serde v1.0.228
   Compiling tracing-attributes v0.1.31
   Compiling zerovec v0.11.6
   Compiling tinystr v0.8.3
   Compiling tracing v0.1.44
   Compiling base64ct v1.8.3
   Compiling untrusted v0.9.0
   Compiling percent-encoding v2.3.2
   Compiling litemap v0.8.2
   Compiling writeable v0.6.3
   Compiling pem-rfc7468 v0.7.0
   Compiling icu_locale_core v2.2.0
   Compiling potential_utf v0.1.5
   Compiling zerotrie v0.2.4
   Compiling futures-macro v0.3.32
   Compiling der_derive v0.7.3
   Compiling http v1.4.0
   Compiling futures-task v0.3.32
   Compiling time-core v0.1.8
   Compiling flagset v0.4.7
   Compiling num-conv v0.2.1
   Compiling utf8_iter v1.0.4
   Compiling minimal-lexical v0.2.1
   Compiling const-oid v0.9.6
   Compiling rand_core v0.10.0
   Compiling powerfmt v0.2.0
   Compiling deranged v0.5.8
   Compiling nom v7.1.3
   Compiling der v0.7.10
   Compiling time-macros v0.2.27
   Compiling icu_collections v2.2.0
   Compiling futures-util v0.3.32
   Compiling icu_provider v2.2.0
   Compiling thiserror-impl v2.0.18
   Compiling bitflags v2.11.0
   Compiling cpufeatures v0.2.17
   Compiling base64 v0.22.1
   Compiling icu_properties_data v2.2.0
   Compiling getrandom v0.4.2
   Compiling rusticata-macros v4.1.0
   Compiling time v0.3.47
   Compiling thiserror v2.0.18
   Compiling spki v0.7.3
   Compiling icu_normalizer_data v2.2.0
   Compiling http-body v1.0.1
   Compiling form_urlencoded v1.2.2
   Compiling asn1-rs-derive v0.6.0
   Compiling asn1-rs-impl v0.2.0
   Compiling hashbrown v0.17.0
   Compiling fnv v1.0.7
   Compiling equivalent v1.0.2
   Compiling asn1-rs v0.7.1
   Compiling icu_normalizer v2.2.0
   Compiling indexmap v2.14.0
   Compiling icu_properties v2.2.0
   Compiling zerocopy-derive v0.8.48
   Compiling hmac v0.12.1
   Compiling num-integer v0.1.46
   Compiling tower-service v0.3.3
   Compiling openssl-probe v0.2.1
   Compiling cpufeatures v0.3.0
   Compiling lazy_static v1.5.0
   Compiling zerocopy v0.8.48
   Compiling num-bigint v0.4.6
   Compiling rustls-native-certs v0.8.3
   Compiling pbkdf2 v0.12.2
   Compiling idna_adapter v1.2.1
   Compiling x509-cert v0.2.5
   Compiling sha2 v0.10.9
   Compiling tokio-util v0.7.18
   Compiling salsa20 v0.10.2
   Compiling regex-syntax v0.8.10
   Compiling try-lock v0.2.5
   Compiling atomic-waker v1.1.2
   Compiling h2 v0.4.13
   Compiling want v0.3.1
   Compiling scrypt v0.11.0
   Compiling cms v0.2.3
   Compiling der-parser v10.0.0
   Compiling idna v1.1.0
   Compiling httparse v1.10.1
   Compiling oid-registry v0.8.1
   Compiling chacha20 v0.10.0
   Compiling aes v0.8.4
   Compiling async-trait v0.1.89
   Compiling cbc v0.1.2
   Compiling getrandom v0.2.17
   Compiling aho-corasick v1.1.4
   Compiling anstyle v1.0.14
   Compiling ucd-trie v0.1.7
   Compiling linux-raw-sys v0.12.1
   Compiling httpdate v1.0.3
   Compiling data-encoding v2.10.0
   Compiling hyper v1.9.0
   Compiling regex-automata v0.4.14
   Compiling x509-parser v0.18.1
   Compiling rustix v1.1.4
   Compiling pest v2.8.6
   Compiling const-random-macro v0.1.16
   Compiling pkcs5 v0.7.1
   Compiling rand v0.10.1
   Compiling url v2.5.8
   Compiling pkcs12 v0.1.0
   Compiling sha1 v0.10.6
   Compiling async-compat v0.2.5
   Compiling tokio-stream v0.1.18
   Compiling des v0.8.1
   Compiling rc2 v0.8.1
   Compiling sync_wrapper v1.0.2
   Compiling nom v8.0.0
   Compiling hex v0.4.3
   Compiling ipnet v2.12.0
   Compiling cookie-factory v0.3.3
   Compiling utf8parse v0.2.2
   Compiling fastrand v2.4.1
   Compiling tower-layer v0.3.3
   Compiling anstyle-parse v1.0.0
   Compiling hyper-util v0.1.20
   Compiling p12-keystore v0.2.1
   Compiling async-rs v0.8.2
   Compiling amq-protocol-types v10.0.1
   Compiling pest_meta v2.8.6
   Compiling const-random v0.1.18
   Compiling getrandom v0.3.4
   Compiling typeid v1.0.3
   Compiling http-body-util v0.1.3
   Compiling hybrid-array v0.4.10
   Compiling ryu v1.0.23
   Compiling colorchoice v1.0.5
   Compiling foldhash v0.1.5
   Compiling anstyle-query v1.1.5
   Compiling is_terminal_polyfill v1.70.2
   Compiling anstream v1.0.0
   Compiling lzma-sys v0.1.20
   Compiling hashbrown v0.15.5
   Compiling pest_generator v2.8.6
   Compiling amq-protocol-uri v10.0.1
   Compiling rand_core v0.9.5
   Compiling dlv-list v0.5.2
   Compiling crossbeam-utils v0.8.21
   Compiling tower v0.5.3
   Compiling encoding_rs v0.8.35
   Compiling strsim v0.11.1
   Compiling mime v0.3.17
   Compiling hashbrown v0.14.5
   Compiling winnow v1.0.1
   Compiling clap_lex v1.1.0
   Compiling predicates-core v1.0.10
   Compiling clap_builder v4.6.0
   Compiling toml_parser v1.1.2+spec-1.1.0
   Compiling ordered-multimap v0.7.3
   Compiling clap_derive v4.6.0
   Compiling crossbeam-epoch v0.9.18
   Compiling pest_derive v2.8.6
   Compiling hashlink v0.10.0
   Compiling erased-serde v0.4.10
   Compiling block-buffer v0.12.0
   Compiling crypto-common v0.2.1
   Compiling serde_urlencoded v0.7.1
   Compiling regex v1.12.3
   Compiling ppv-lite86 v0.2.21
   Compiling futures-executor v0.3.32
   Compiling serde_spanned v1.1.1
   Compiling toml_datetime v1.1.1+spec-1.1.0
   Compiling spin v0.9.8
   Compiling simd-adler32 v0.3.9
   Compiling termtree v0.5.1
   Compiling iri-string v0.7.12
   Compiling const-oid v0.10.2
   Compiling arraydeque v0.5.1
   Compiling unicode-segmentation v1.13.2
   Compiling unicode-width v0.2.2
   Compiling adler2 v2.0.1
   Compiling either v1.15.0
   Compiling miniz_oxide v0.8.9
   Compiling tower-http v0.6.8
   Compiling console v0.16.3
   Compiling convert_case v0.6.0
   Compiling yaml-rust2 v0.10.4
   Compiling digest v0.11.2
   Compiling predicates-tree v1.0.13
   Compiling flume v0.12.0
   Compiling toml v1.1.2+spec-1.1.0
   Compiling rand_chacha v0.9.0
   Compiling serde-untagged v0.1.9
   Compiling clap v4.6.0
   Compiling json5 v0.4.1
   Compiling crossbeam-deque v0.8.6
   Compiling rust-ini v0.21.3
   Compiling mockall_derive v0.14.0
   Compiling portable-atomic v1.13.1
   Compiling crc32fast v1.5.0
   Compiling predicates v3.1.4
   Compiling axum-core v0.5.6
   Compiling ron v0.12.1
   Compiling backon v1.6.0
   Compiling matchers v0.2.0
   Compiling xattr v1.6.1
   Compiling half v2.7.1
   Compiling sharded-slab v0.1.7
   Compiling tracing-serde v0.2.0
   Compiling tracing-log v0.2.0
   Compiling alloca v0.4.0
   Compiling serde_path_to_error v0.1.20
   Compiling fragile v2.1.0
   Compiling filetime v0.2.27
   Compiling thread_local v1.1.9
   Compiling pathdiff v0.2.3
   Compiling downcast v0.11.0
   Compiling plotters-backend v0.3.7
   Compiling unit-prefix v0.5.2
   Compiling nu-ansi-term v0.50.3
   Compiling matchit v0.8.4
   Compiling iana-time-zone v0.1.65
   Compiling ciborium-io v0.2.2
   Compiling unsafe-libyaml v0.2.11
   Compiling ciborium-ll v0.2.2
   Compiling axum v0.8.8
   Compiling chrono v0.4.44
   Compiling serde_yaml_ng v0.10.0
   Compiling tracing-subscriber v0.3.23
   Compiling plotters-svg v0.3.7
   Compiling indicatif v0.18.4
   Compiling mockall v0.14.0
   Compiling config v0.15.22
   Compiling tar v0.4.45
   Compiling xz2 v0.1.7
   Compiling flate2 v1.1.9
   Compiling rayon-core v1.13.0
   Compiling rand v0.9.3
   Compiling sha2 v0.11.0
   Compiling anyhow v1.0.102
   Compiling itertools v0.13.0
   Compiling futures v0.3.32
   Compiling tempfile v3.27.0
   Compiling quick-xml v0.39.2
   Compiling num_cpus v1.17.0
   Compiling wait-timeout v0.2.1
   Compiling sdd v3.0.10
   Compiling dotenvy v0.15.7
   Compiling urlencoding v2.1.3
   Compiling quick-error v1.2.3
   Compiling same-file v1.0.6
   Compiling bit-vec v0.8.0
   Compiling cast v0.3.0
   Compiling criterion-plot v0.8.2
   Compiling bit-set v0.8.0
   Compiling walkdir v2.5.0
   Compiling rusty-fork v0.3.1
   Compiling scc v2.4.0
   Compiling rayon v1.11.0
   Compiling plotters v0.3.7
   Compiling ciborium v0.2.2
   Compiling rand_xorshift v0.4.0
   Compiling tinytemplate v1.2.1
   Compiling assert-json-diff v2.0.2
   Compiling serial_test_derive v3.4.0
   Compiling page_size v0.6.0
   Compiling anes v0.1.6
   Compiling unarray v0.1.4
   Compiling colored v3.1.1
   Compiling oorandom v11.1.5
   Compiling similar v2.7.0
   Compiling serial_test v3.4.0
   Compiling criterion v0.8.2
   Compiling mockito v1.7.2
   Compiling proptest v1.11.0
   Compiling aws-lc-rs v1.16.2
   Compiling rustls v0.23.38
   Compiling rustls-webpki v0.103.11
   Compiling futures-rustls v0.26.0
   Compiling tokio-rustls v0.26.4
   Compiling rustls-platform-verifier v0.6.2
   Compiling rustls-connector v0.22.0
   Compiling hyper-rustls v0.27.8
   Compiling tcp-stream v0.34.3
   Compiling reqwest v0.13.2
   Compiling amq-protocol-tcp v10.0.1
   Compiling amq-protocol v10.0.1
   Compiling lapin v4.4.0
   Compiling extractor v0.1.0 (/home/runner/work/discogsography/discogsography/extractor)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 11s
     Running unittests src/lib.rs (/home/runner/work/discogsography/discogsography/target/debug/deps/extractor-5bfbb88e7efe67f5)

running 469 tests
test config::tests::test_build_amqp_url_special_characters ... ok
test config::tests::test_discogs_health_url_default ... ok
test config::tests::test_default_config ... ok
test config::tests::test_default_max_workers ... ok
test config::tests::test_discogs_health_url_from_env ... ok
test config::tests::test_from_env_invalid_batch_size ... ok
test config::tests::test_from_env_default_discogs_root ... ok
test config::tests::test_from_env_fixed_values ... ok
test config::tests::test_from_env_invalid_max_workers ... ok
test config::tests::test_from_env_invalid_periodic_check_days ... ok
test config::tests::test_from_env_reads_secret_from_file ... ok
test config::tests::test_from_env_secret_file_not_found ... ok
test config::tests::test_from_env_secret_file_with_whitespace ... ok
test config::tests::test_from_env_uses_credential_defaults ... ok
test config::tests::test_from_env_with_all_settings ... ok
test config::tests::test_from_env_with_rabbitmq_credentials ... ok
test config::tests::test_musicbrainz_dump_url_default ... ok
test config::tests::test_musicbrainz_dump_url_from_env ... ok
test discogs_downloader::tests::test_calculate_file_checksum_nonexistent ... ok
test discogs_downloader::tests::test_calculate_file_checksum_empty_file ... ok
test discogs_downloader::tests::test_datasource_get_latest_monthly_files_via_trait ... ok
test discogs_downloader::tests::test_datasource_set_and_take_state_marker ... ok
test discogs_downloader::tests::test_calculate_file_checksum ... ok
test discogs_downloader::tests::test_datasource_list_s3_files_via_trait ... ok
test discogs_downloader::tests::test_download_discogs_data_skips_already_downloaded ... ok
test discogs_downloader::tests::test_downloader_new ... ok
test discogs_downloader::tests::test_downloader_save_metadata ... ok
test discogs_downloader::tests::test_extract_month ... ok
test discogs_downloader::tests::test_extract_month_edge_cases ... ok
test discogs_downloader::tests::test_extract_month_invalid_filename ... ok
test discogs_downloader::tests::test_get_latest_monthly_files_complete_set ... ok
test discogs_downloader::tests::test_get_latest_monthly_files_empty_input ... ok
test discogs_downloader::tests::test_get_latest_monthly_files_multiple_versions ... ok
test discogs_downloader::tests::test_get_latest_monthly_files_no_complete_set ... ok
test discogs_downloader::tests::test_download_discogs_data_with_state_marker_skips ... ok
test discogs_downloader::tests::test_load_metadata_invalid_json ... ok
test discogs_downloader::tests::test_load_metadata_nonexistent ... ok
test discogs_downloader::tests::test_load_metadata_valid ... ok
test discogs_downloader::tests::test_new_with_base_url ... ok
test discogs_downloader::tests::test_save_state_marker_failure_warns ... ok
test discogs_downloader::tests::test_save_state_marker_with_marker ... ok
test discogs_downloader::tests::test_save_state_marker_without_marker ... ok
test discogs_downloader::tests::test_should_download_checksum_mismatch ... ok
test discogs_downloader::tests::test_should_download_file_not_exists ... ok
test discogs_downloader::tests::test_should_download_no_metadata_file_exists ... ok
test discogs_downloader::tests::test_should_download_size_changed ... ok
test discogs_downloader::tests::test_should_download_up_to_date ... ok
test discogs_downloader::tests::test_with_state_marker ... ok
test extractor::tests::test_extract_data_type ... ok
test extractor::tests::test_extract_data_type_all_types ... ok
test extractor::tests::test_extract_data_type_checksum_file ... ok
test extractor::tests::test_extract_data_type_empty_string ... ok
test extractor::tests::test_extract_data_type_invalid_formats ... ok
test extractor::tests::test_extract_data_type_with_path_prefix ... ok
test extractor::tests::test_extract_version_from_filename ... ok
test extractor::tests::test_extract_version_from_filename_invalid ... ok
test extractor::tests::test_extraction_status_set_completed_on_success ... ok
test extractor::tests::test_extraction_status_set_failed_on_error ... ok
test extractor::tests::test_extraction_status_set_to_running ... ok
test extractor::tests::test_extractor_state_default ... ok
test discogs_downloader::tests::test_list_s3_files_uses_cache ... ok
test extractor::tests::test_extractor_state_default_extraction_status ... ok
test extractor::tests::test_extractor_state_last_extraction_time ... ok
test extractor::tests::test_extractor_state_tracks_active_connections ... ok
test extractor::tests::test_extractor_state_tracks_completed_files ... ok
test extractor::tests::test_extractor_state_tracks_errors ... ok
test extractor::tests::test_extractor_state_tracks_progress ... ok
test extractor::tests::test_message_batcher_basic ... ok
test extractor::tests::test_message_batcher_empty_input ... ok
test extractor::tests::test_message_batcher_respects_batch_size ... ok
test extractor::tests::test_message_batcher_multiple_batch_sizes ... ok
test extractor::tests::test_message_batcher_triggers_state_save ... ok
test extractor::tests::test_message_validator_downstream_dropped ... ok
test extractor::tests::test_message_validator_multiple_messages ... ok
test extractor::tests::test_message_validator_no_rules_for_data_type ... ok
test extractor::tests::test_message_validator_no_violations ... ok
test extractor::tests::test_message_validator_with_violations ... ok
test extractor::tests::test_message_validator_writes_flagged_files ... ok
test extractor::tests::test_progress_reporter_immediate_shutdown ... ok
test extractor::tests::test_progress_reporter_interval_increases_after_three_reports ... ok
test extractor::tests::test_progress_reporter_logs_on_timer_fire ... ok
test extractor::tests::test_progress_reporter_stall_detection ... ok
test extractor::tests::test_progress_reporter_with_completed_files_and_active_connections ... ok
test extractor::tests::test_state_marker_file_tracking ... ok
test extractor::tests::test_state_marker_periodic_updates ... ok
test extractor::tests::test_state_marker_save_load ... ok
test extractor::tests::test_wait_for_trigger_clears_flag ... ok
test extractor::tests::test_wait_for_trigger_only_fires_once ... ok
test extractor::tests::test_wait_for_trigger_returns_when_triggered ... ok
test discogs_downloader::tests::test_datasource_download_discogs_data_via_trait ... ok
test discogs_downloader::tests::test_download_discogs_data_with_state_marker ... ok
test extractor::tests::wait_for_discogs_idle_tests::test_proceeds_when_completed ... ok
test extractor::tests::wait_for_discogs_idle_tests::test_proceeds_when_failed ... ok
test extractor::tests::wait_for_discogs_idle_tests::test_proceeds_when_idle ... ok
test extractor::tests::wait_for_discogs_idle_tests::test_proceeds_after_max_unreachable_retries ... ok
test health::tests::test_health_extraction_status_running ... ok
test health::tests::test_health_handler_default_state ... ok
test health::tests::test_health_handler_with_progress ... ok
test health::tests::test_health_includes_extraction_status ... ok
test health::tests::test_health_json_format ... ok
test health::tests::test_health_server_new ... ok
test extractor::tests::wait_for_discogs_idle_tests::test_respects_shutdown_signal ... ok
test health::tests::test_metrics_handler_default_state ... ok
test health::tests::test_metrics_handler_with_data ... ok
test health::tests::test_metrics_json_format ... ok
test health::tests::test_ready_handler_not_ready ... ok
test health::tests::test_ready_handler_ready ... ok
test health::tests::test_ready_handler_transitions ... ok
test health::tests::test_ready_handler_with_active_connections ... ok
test health::tests::test_trigger_handler_already_running ... ok
test health::tests::test_trigger_handler_force_reprocess ... ok
test health::tests::test_trigger_handler_success ... ok
test jsonl_parser::tests::test_build_mbid_discogs_map ... ok
test jsonl_parser::tests::test_build_mbid_discogs_map_nonexistent_file ... ok
test jsonl_parser::tests::test_build_mbid_discogs_map_with_malformed_lines ... ok
test jsonl_parser::tests::test_enrich_relations_empty ... ok
test jsonl_parser::tests::test_enrich_relations_no_target_id ... ok
test jsonl_parser::tests::test_enrich_relations_skips_non_matching_target_type ... ok
test jsonl_parser::tests::test_enrich_relations_with_map ... ok
test jsonl_parser::tests::test_extract_discogs_id_from_artist_url ... ok
test jsonl_parser::tests::test_extract_discogs_id_from_label_url ... ok
test jsonl_parser::tests::test_extract_discogs_id_malformed ... ok
test jsonl_parser::tests::test_extract_discogs_id_no_match ... ok
test jsonl_parser::tests::test_extract_discogs_id_with_slug ... ok
test jsonl_parser::tests::test_extract_discogs_id_wrong_entity_type ... ok
test jsonl_parser::tests::test_extract_entity_rels_empty ... ok
test jsonl_parser::tests::test_extract_entity_rels_normalizes_format ... ok
test jsonl_parser::tests::test_extract_external_links_all_discogs ... ok
test jsonl_parser::tests::test_extract_external_links_empty ... ok
test jsonl_parser::tests::test_extract_external_links_filters_discogs ... ok
test jsonl_parser::tests::test_extract_url_rels_empty_relations ... ok
test jsonl_parser::tests::test_extract_url_rels_filters_by_target_type ... ok
test jsonl_parser::tests::test_extract_url_rels_no_url_type ... ok
test jsonl_parser::tests::test_find_discogs_id_discogs_type_but_empty_resource ... ok
test jsonl_parser::tests::test_find_discogs_id_discogs_type_but_no_url ... ok
test jsonl_parser::tests::test_parse_mb_artist_line_invalid_json ... ok
test jsonl_parser::tests::test_parse_mb_artist_line_life_span_fields ... ok
test jsonl_parser::tests::test_parse_mb_artist_line_no_discogs ... ok
test jsonl_parser::tests::test_parse_mb_artist_line_with_discogs ... ok
test jsonl_parser::tests::test_parse_mb_jsonl_file_artists ... ok
test jsonl_parser::tests::test_parse_mb_jsonl_file_labels ... ok
test jsonl_parser::tests::test_parse_mb_jsonl_file_masters_returns_zero ... ok
test jsonl_parser::tests::test_parse_mb_jsonl_file_receiver_dropped ... ok
test jsonl_parser::tests::test_parse_mb_jsonl_file_releases ... ok
test jsonl_parser::tests::test_parse_mb_jsonl_file_skips_malformed_lines ... ok
test jsonl_parser::tests::test_parse_mb_jsonl_file_with_discogs_map_enriches_relations ... ok
test jsonl_parser::tests::test_parse_mb_jsonl_file_with_empty_lines ... ok
test jsonl_parser::tests::test_parse_mb_label_line_invalid_json ... ok
test jsonl_parser::tests::test_parse_mb_label_line_no_discogs ... ok
test jsonl_parser::tests::test_parse_mb_label_line_with_discogs ... ok
test jsonl_parser::tests::test_parse_mb_release_group_line_invalid_json ... ok
test jsonl_parser::tests::test_parse_mb_release_group_line_no_discogs ... ok
test jsonl_parser::tests::test_parse_mb_release_group_line_with_discogs ... ok
test jsonl_parser::tests::test_parse_mb_release_line_invalid_json ... ok
test jsonl_parser::tests::test_parse_mb_release_line_no_discogs ... ok
test jsonl_parser::tests::test_parse_mb_release_line_true_invalid_json ... ok
test jsonl_parser::tests::test_parse_mb_release_line_with_discogs ... ok
test message_queue::tests::test_constants ... ok
test message_queue::tests::test_data_message_serialization_format ... ok
test message_queue::tests::test_exchange_names_custom_prefix ... ok
test message_queue::tests::test_exchange_names_default_prefix ... ok
test message_queue::tests::test_extraction_complete_message_roundtrip ... ok
test message_queue::tests::test_file_complete_message_serialization_format ... ok
test message_queue::tests::test_get_channel_with_no_channel_triggers_reconnect ... ok
test message_queue::tests::test_message_properties_content_type ... ok
test message_queue::tests::test_message_properties_persistent_delivery ... ok
test message_queue::tests::test_message_serialization_data ... ok
test message_queue::tests::test_message_serialization_file_complete ... ok
test message_queue::tests::test_new_connection_failure ... ok
test extractor::tests::wait_for_discogs_idle_tests::test_waits_then_proceeds_when_running_then_idle ... ok
test message_queue::tests::test_normalize_amqp_url_amqps_scheme ... ok
test message_queue::tests::test_normalize_amqp_url_different_ports ... ok
test message_queue::tests::test_normalize_amqp_url_empty ... ok
test message_queue::tests::test_normalize_amqp_url_invalid ... ok
test message_queue::tests::test_normalize_amqp_url_minimal ... ok
test message_queue::tests::test_normalize_amqp_url_with_credentials_special_chars ... ok
test message_queue::tests::test_normalize_amqp_url_with_encoded_default_vhost ... ok
test message_queue::tests::test_normalize_amqp_url_with_explicit_vhost ... ok
test message_queue::tests::test_normalize_amqp_url_with_query_params ... ok
test message_queue::tests::test_normalize_amqp_url_with_trailing_slash ... ok
test message_queue::tests::test_normalize_amqp_url_without_trailing_slash ... ok
test message_queue_unit_tests::test_data_message_with_empty_data ... ok
test message_queue_unit_tests::test_data_message_with_nested_data ... ok
test message_queue_unit_tests::test_data_type_display ... ok
test message_queue_unit_tests::test_data_type_from_string_all_variants ... ok
test message_queue_unit_tests::test_file_complete_message_fields ... ok
test message_queue_unit_tests::test_large_data_message ... ok
test message_queue_unit_tests::test_message_data_variant_round_trip ... ok
test message_queue_unit_tests::test_message_file_complete_variant_round_trip ... ok
test message_queue_unit_tests::test_message_json_structure ... ok
test message_queue_unit_tests::test_message_serialization_data ... ok
test message_queue_unit_tests::test_message_serialization_file_complete ... ok
test message_queue_unit_tests::test_message_size_estimation ... ok
test musicbrainz_downloader::tests::test_detect_mb_dump_version_fallback_to_current_date ... ok
test musicbrainz_downloader::tests::test_detect_mb_dump_version_from_date_dir ... ok
test musicbrainz_downloader::tests::test_detect_mb_dump_version_from_prefixed_dir ... ok
test musicbrainz_downloader::tests::test_detect_mb_dump_version_root_path ... ok
test musicbrainz_downloader::tests::test_discover_finds_compressed_files ... ok
test musicbrainz_downloader::tests::test_discover_mb_dump_files_bare_jsonl ... ok
test musicbrainz_downloader::tests::test_discover_mb_dump_files_empty_dir ... ok
test musicbrainz_downloader::tests::test_discover_mb_dump_files_exact_patterns ... ok
test musicbrainz_downloader::tests::test_discover_mb_dump_files_exact_preferred_over_fuzzy ... ok
test musicbrainz_downloader::tests::test_discover_mb_dump_files_fuzzy_match ... ok
test musicbrainz_downloader::tests::test_discover_mb_dump_files_fuzzy_match_bare_jsonl ... ok
test musicbrainz_downloader::tests::test_discover_mb_dump_files_ignores_non_jsonl_xz ... ok
test musicbrainz_downloader::tests::test_discover_mb_dump_files_mbdump_prefix ... ok
test musicbrainz_downloader::tests::test_discover_mb_dump_files_nonexistent_dir ... ok
test musicbrainz_downloader::tests::test_download_latest_already_current ... ok
test health::tests::test_health_server_run_and_endpoints ... ok
test musicbrainz_downloader::tests::test_download_latest_connection_error_exhausts_retries ... ok
test musicbrainz_downloader::tests::test_download_latest_empty_response_stream_error ... ok
test musicbrainz_downloader::tests::test_download_latest_no_versions_found ... ok
test musicbrainz_downloader::tests::test_download_latest_new_version ... ok
test musicbrainz_downloader::tests::test_download_latest_retry_cleans_up_dest_file ... ok
test extractor::tests::test_message_batcher_timeout_flush ... ok
test musicbrainz_downloader::tests::test_download_latest_retry_on_failure ... ok
test musicbrainz_downloader::tests::test_entity_keyword_masters ... ok
test musicbrainz_downloader::tests::test_entity_keyword_release_groups ... ok
test musicbrainz_downloader::tests::test_extract_entity_from_tarball ... ok
test musicbrainz_downloader::tests::test_extract_entity_from_tarball_cleans_up_on_failure ... ok
test musicbrainz_downloader::tests::test_extract_entity_from_tarball_missing_entity ... ok
test message_queue::tests::test_new_connection_failure_with_retries ... ok
test musicbrainz_downloader::tests::test_find_latest_mb_directory_empty ... ok
test musicbrainz_downloader::tests::test_find_latest_mb_directory_files_only_no_dirs ... ok
test musicbrainz_downloader::tests::test_find_latest_mb_directory_ignores_non_version_dirs ... ok
test musicbrainz_downloader::tests::test_find_latest_mb_directory_multiple ... ok
test musicbrainz_downloader::tests::test_find_latest_mb_directory_nonexistent_root ... ok
test musicbrainz_downloader::tests::test_find_latest_mb_directory_single ... ok
test musicbrainz_downloader::tests::test_is_version_complete_missing_entity ... ok
test musicbrainz_downloader::tests::test_is_version_complete_missing_one_file ... ok
test musicbrainz_downloader::tests::test_is_version_complete_nonexistent_dir ... ok
test musicbrainz_downloader::tests::test_is_version_complete_true ... ok
test musicbrainz_downloader::tests::test_is_version_complete_with_mixed_files ... ok
test musicbrainz_downloader::tests::test_is_version_complete_with_xz_files ... ok
test musicbrainz_downloader::tests::test_mb_download_result_version_already_current ... ok
test musicbrainz_downloader::tests::test_mb_download_result_version_downloaded ... ok
test musicbrainz_downloader::tests::test_parse_sha256sums ... ok
test musicbrainz_downloader::tests::test_parse_sha256sums_blank_lines ... ok
test musicbrainz_downloader::tests::test_parse_sha256sums_empty ... ok
test musicbrainz_downloader::tests::test_parse_version_directories_empty ... ok
test musicbrainz_downloader::tests::test_parse_version_directories_from_html ... ok
test normalize::tests::test_artist_basic ... ok
test normalize::tests::test_artist_no_members ... ok
test normalize::tests::test_artist_single_member ... ok
test normalize::tests::test_artist_with_aliases ... ok
test normalize::tests::test_artist_with_groups ... ok
test normalize::tests::test_artist_with_members ... ok
test normalize::tests::test_ensure_list_array ... ok
test normalize::tests::test_ensure_list_null ... ok
test normalize::tests::test_ensure_list_single_value ... ok
test normalize::tests::test_label_basic ... ok
test normalize::tests::test_label_no_parent ... ok
test normalize::tests::test_label_parent_label ... ok
test normalize::tests::test_label_single_sublabel ... ok
test normalize::tests::test_label_sublabels_container ... ok
test normalize::tests::test_master_artists_container ... ok
test normalize::tests::test_master_basic ... ok
test normalize::tests::test_master_genres_container ... ok
test normalize::tests::test_master_no_genres ... ok
test normalize::tests::test_master_single_artist ... ok
test normalize::tests::test_master_styles_single ... ok
test normalize::tests::test_normalize_artist_empty_members_container ... ok
test normalize::tests::test_normalize_artist_non_object ... ok
test normalize::tests::test_normalize_item_list_with_number_items ... ok
test normalize::tests::test_normalize_item_list_with_string_items ... ok
test normalize::tests::test_normalize_label_non_object ... ok
test normalize::tests::test_normalize_master_non_object ... ok
test normalize::tests::test_normalize_release_format_non_object_item ... ok
test normalize::tests::test_normalize_release_master_id_integer ... ok
test normalize::tests::test_normalize_release_master_id_null ... ok
test normalize::tests::test_normalize_release_non_object ... ok
test normalize::tests::test_release_artists ... ok
test normalize::tests::test_release_basic ... ok
test normalize::tests::test_release_extraartists ... ok
test normalize::tests::test_release_format_with_descriptions ... ok
test normalize::tests::test_release_formats ... ok
test normalize::tests::test_release_full_pipeline ... ok
test normalize::tests::test_release_genres_styles ... ok
test normalize::tests::test_release_labels ... ok
test normalize::tests::test_release_master_id_dict ... ok
test normalize::tests::test_release_master_id_string ... ok
test normalize::tests::test_release_single_format ... ok
test normalize::tests::test_strip_at_prefixes_flat_object ... ok
test normalize::tests::test_strip_at_prefixes_hash_text_to_name ... ok
test normalize::tests::test_strip_at_prefixes_no_at_keys ... ok
test normalize::tests::test_strip_at_prefixes_no_op_when_name_exists ... ok
test normalize::tests::test_strip_at_prefixes_non_object ... ok
test normalize::tests::test_unknown_type_noop ... ok
test normalize::tests::test_unwrap_container_already_list ... ok
test normalize::tests::test_unwrap_container_bare_string ... ok
test normalize::tests::test_unwrap_container_dict_with_key ... ok
test normalize::tests::test_unwrap_container_dict_without_key ... ok
test normalize::tests::test_unwrap_container_null ... ok
test normalize::tests::test_unwrap_container_single_item ... ok
test parser::tests::test_element_context_add_child_multiple ... ok
test parser::tests::test_element_context_add_child_single ... ok
test parser::tests::test_element_context_add_child_to_existing_array ... ok
test parser::tests::test_element_context_new ... ok
test parser::tests::test_element_context_to_value_attributes_and_text ... ok
test parser::tests::test_element_context_to_value_attributes_only ... ok
test parser::tests::test_element_context_to_value_empty ... ok
test parser::tests::test_element_context_to_value_mixed_content ... ok
test parser::tests::test_element_context_to_value_text_only ... ok
test parser::tests::test_element_context_to_value_whitespace_preserved ... ok
test parser::tests::test_parse_artist_with_members ... ok
test parser::tests::test_parse_file_not_found ... ok
test parser::tests::test_parse_label_with_sublabels ... ok
test parser::tests::test_parse_master_with_artists ... ok
test parser::tests::test_parse_receiver_dropped ... ok
test parser::tests::test_parse_release_with_artists ... ok
test parser::tests::test_parse_self_closing_child_element ... ok
test parser::tests::test_parse_self_closing_target_element ... ok
test parser::tests::test_parse_simple_xml ... ok
test parser::tests::test_parse_with_entity_references ... ok
test parser::tests::test_parse_with_numeric_character_references ... ok
test parser::tests::test_parse_with_unknown_entity_reference ... ok
test parser::tests::test_raw_xml_capture ... ok
test parser::tests::test_raw_xml_not_captured_by_default ... ok
test parser::tests::test_reconstruct_xml_id_dedup_for_releases ... ok
test parser::tests::test_reconstruct_xml_id_without_at_id_is_kept ... ok
test parser::tests::test_reconstruct_xml_self_closing_target ... ok
test parser::tests::test_reconstruct_xml_with_array_children ... ok
test parser::tests::test_reconstruct_xml_with_null_value ... ok
test parser::tests::test_reconstruct_xml_with_numeric_values ... ok
test parser::tests::test_reconstruct_xml_with_text_and_attributes ... ok
test rules::tests::test_all_valid_data_type_keys_accepted ... ok
test musicbrainz_downloader::tests::test_extract_entity_from_tarball_multiline_round_trip ... ok
test rules::tests::test_dot_notation_array_expands_to_multiple_values ... ok
test rules::tests::test_dot_notation_array_one_violating_element ... ok
test rules::tests::test_dot_notation_missing_intermediate_produces_violation ... ok
test rules::tests::test_dot_notation_nested_object ... ok
test rules::tests::test_enum_invalid_value_produces_violation ... ok
test rules::tests::test_enum_valid_value_no_violation ... ok
test rules::tests::test_filter_empty_after_removal ... ok
test rules::tests::test_default_rules_file ... ok
test rules::tests::test_filter_no_conditions_for_data_type ... ok
test rules::tests::test_filter_no_match_field_missing ... ok
test rules::tests::test_filter_preserves_non_matching ... ok
test rules::tests::test_filter_removes_numeric_genres ... ok
test rules::tests::test_filters_validates_data_type ... ok
test rules::tests::test_flagged_writer_deduplicates_files ... ok
test rules::tests::test_flagged_writer_no_capture_files ... ok
test rules::tests::test_filter_single_string_genre_not_array ... ok
test rules::tests::test_flagged_writer_write_report ... ok
test rules::tests::test_flagged_writer_write_skip ... ok
test rules::tests::test_flagged_writer_write_skip_deduplication ... ok
test rules::tests::test_flagged_writer_write_skip_without_raw_xml ... ok
test rules::tests::test_flagged_writer_write_violation_and_flush ... ok
test rules::tests::test_invalid_data_type_returns_error ... ok
test rules::tests::test_invalid_filter_regex_returns_error ... ok
test rules::tests::test_invalid_regex_returns_error ... ok
test rules::tests::test_length_too_long_produces_violation ... ok
test rules::tests::test_length_too_short_produces_violation ... ok
test rules::tests::test_length_within_bounds_no_violation ... ok
test rules::tests::test_load_accepts_yml_extension ... ok
test rules::tests::test_load_rejects_invalid_yaml ... ok
test rules::tests::test_load_rejects_nonexistent_file ... ok
test rules::tests::test_load_rejects_non_yaml_extension ... ok
test rules::tests::test_multiple_rules_multiple_violations ... ok
test rules::tests::test_no_rules_for_data_type_returns_empty_violations ... ok
test rules::tests::test_no_rules_for_unknown_data_type ... ok
test rules::tests::test_load_valid_config_all_condition_types ... ok
test rules::tests::test_nullify_when_above_threshold ... ok
test rules::tests::test_nullify_when_below_threshold ... ok
test rules::tests::test_nullify_when_field_already_null ... ok
test rules::tests::test_nullify_when_invalid_type_returns_error ... ok
test rules::tests::test_nullify_when_missing_bounds_returns_er

- Update Python packages to latest compatible versions
- Update UV package manager in Dockerfiles
- Apply security patches and bug fixes

Generated by automated dependency update workflow
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions
Copy link
Copy Markdown
Contributor Author

E2E Coverage (webkit)

Totals Coverage
Statements: 47.64% ( 1241 / 2605 )
Lines: 47.64% ( 1241 / 2605 )

StandWithUkraine

@github-actions
Copy link
Copy Markdown
Contributor Author

E2E Coverage (chromium)

Totals Coverage
Statements: 47.64% ( 1241 / 2605 )
Lines: 47.64% ( 1241 / 2605 )

StandWithUkraine

@github-actions
Copy link
Copy Markdown
Contributor Author

E2E Coverage (firefox)

Totals Coverage
Statements: 47.64% ( 1241 / 2605 )
Lines: 47.64% ( 1241 / 2605 )

StandWithUkraine

@github-actions
Copy link
Copy Markdown
Contributor Author

E2E Coverage (webkit - iPad Pro 11)

Totals Coverage
Statements: 47.64% ( 1241 / 2605 )
Lines: 47.64% ( 1241 / 2605 )

StandWithUkraine

@github-actions
Copy link
Copy Markdown
Contributor Author

E2E Coverage (webkit - iPhone 15)

Totals Coverage
Statements: 47.64% ( 1241 / 2605 )
Lines: 47.64% ( 1241 / 2605 )

StandWithUkraine

@SimplicityGuy SimplicityGuy merged commit 4cebc2d into main Apr 13, 2026
57 checks passed
@SimplicityGuy SimplicityGuy deleted the automation/updates branch April 13, 2026 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant