fix: 2FA recovery codes display, sync rate limit, taste strip gap, bt… #1166
build.yml
on: push
detect-changes
5s
run-code-quality
/
code-quality
2m 15s
Matrix: run-e2e-tests / e2e-test
run-security
/
Python Security
49s
run-security
/
Semgrep CE Scan
48s
run-security
/
Rust Security
21s
run-security
/
Secret Scanning
12s
run-security
/
Container Scanning
29s
run-docker-compose-validate
/
validate-compose
12s
run-tests
/
test-api
49s
run-tests
/
test-common
52s
run-tests
/
test-dashboard
56s
run-tests
/
test-explore
31s
run-tests
/
test-insights
28s
run-tests
/
test-mcp-server
23s
run-tests
/
test-brainzgraphinator
24s
run-tests
/
test-graphinator
38s
run-tests
/
test-schema-init
25s
run-tests
/
test-tableinator
41s
run-tests
/
test-brainztableinator
22s
run-tests
/
test-js
26s
run-tests
/
test-extractor
3m 2s
Matrix: run-docker-validate / validate-dockerfiles
Matrix: build-discogsography
Annotations
44 warnings and 20 notices
|
run-code-quality / code-quality
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, alexellis/arkade-get@1eef818e467c387d3f50cfe0d2c565d1cbe82b03, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-docker-compose-validate / validate-compose
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: alexellis/arkade-get@1eef818e467c387d3f50cfe0d2c565d1cbe82b03. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-tests / test-mcp-server
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-tests / test-brainzgraphinator
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-tests / test-schema-init
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-tests / test-insights
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-security / Container Scanning
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-tests / test-explore
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-tests / test-brainztableinator
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-tests / test-graphinator
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-tests / test-tableinator
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-security / Python Security
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-tests / test-api
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-tests / test-common
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-tests / test-dashboard
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-e2e-tests / Test webkit
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-e2e-tests / Test chromium
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-e2e-tests / Test firefox
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-e2e-tests / Test webkit - iPhone 15
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
run-e2e-tests / Test webkit - iPad Pro 11
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build-discogsography (insights, true)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build-discogsography (insights, true)
embed field value must be shorter than 1024, got 2697
[`3070826`](https://github.com/SimplicityGuy/discogsography/commit/3070826ceb98b35888d11c6cc7585a95d2189460) fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger (#302)
* fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger
- Recovery codes were read from /api/auth/2fa/confirm response which only
returns {message}; now read from cached _setupData.recovery_codes returned
by /api/auth/2fa/setup. Also fixes Copy Codes copying empty string.
- Defined .btn-danger Tailwind component class so the Disable 2FA button
picks up flex centering from btn-base. The class was used by settings.js
but never defined.
- Loosened sync rate limit from 2/10minute to 10/minute and cooldown from
600s to 60s. Frontend now reads 429 message body instead of showing a
generic "Please try again later" alert.
- Hide #tasteStrip when empty so taste-fingerprint timeouts/unavailability
no longer leave a blank gap between the stats cards and the collection
table.
- Removed dead X-Mailin-Track headers from password reset email; Brevo's
v3 transactional API rejects standard email headers per the SDK's own
signature ("Standard email headers are not supported"), so per-message
click tracking control is impossible. Click tracking has to be disabled
in the Brevo dashboard. Added comment explaining why.
- Settings test mocks now match real API contract (setup returns
otpauth_uri + recovery_codes; confirm returns {message}). The wrong
mocks let the recovery codes bug ship.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: set NLQ toggle to display:flex explicitly
Clearing the inline `style="display: none;"` to '' should fall back to the
Tailwind `flex` class via the cascade, but in some browsers the layout
doesn't update until something else triggers a reflow. Setting display
explicitly to 'flex' is unambiguous and removes the dependency on cascade
ordering for elements with both inline-style hide and class-based show.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: cover new triggerSync branches in user-panes
Add 5 tests for the branches introduced by the sync 429 handling:
- 503 returns the service-unavailable message
- 429 with empty body falls back to the default cooldown message
- generic non-ok with body.detail surfaces the detail text
- generic non-ok with body.message surfaces the message text
- ok:true success path schedules the four pane reloads via setTimeout
Closes the codecov gap on PR #302.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
build-discogsography (api, true)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build-discogsography (api, true)
embed field value must be shorter than 1024, got 2697
[`3070826`](https://github.com/SimplicityGuy/discogsography/commit/3070826ceb98b35888d11c6cc7585a95d2189460) fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger (#302)
* fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger
- Recovery codes were read from /api/auth/2fa/confirm response which only
returns {message}; now read from cached _setupData.recovery_codes returned
by /api/auth/2fa/setup. Also fixes Copy Codes copying empty string.
- Defined .btn-danger Tailwind component class so the Disable 2FA button
picks up flex centering from btn-base. The class was used by settings.js
but never defined.
- Loosened sync rate limit from 2/10minute to 10/minute and cooldown from
600s to 60s. Frontend now reads 429 message body instead of showing a
generic "Please try again later" alert.
- Hide #tasteStrip when empty so taste-fingerprint timeouts/unavailability
no longer leave a blank gap between the stats cards and the collection
table.
- Removed dead X-Mailin-Track headers from password reset email; Brevo's
v3 transactional API rejects standard email headers per the SDK's own
signature ("Standard email headers are not supported"), so per-message
click tracking control is impossible. Click tracking has to be disabled
in the Brevo dashboard. Added comment explaining why.
- Settings test mocks now match real API contract (setup returns
otpauth_uri + recovery_codes; confirm returns {message}). The wrong
mocks let the recovery codes bug ship.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: set NLQ toggle to display:flex explicitly
Clearing the inline `style="display: none;"` to '' should fall back to the
Tailwind `flex` class via the cascade, but in some browsers the layout
doesn't update until something else triggers a reflow. Setting display
explicitly to 'flex' is unambiguous and removes the dependency on cascade
ordering for elements with both inline-style hide and class-based show.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: cover new triggerSync branches in user-panes
Add 5 tests for the branches introduced by the sync 429 handling:
- 503 returns the service-unavailable message
- 429 with empty body falls back to the default cooldown message
- generic non-ok with body.detail surfaces the detail text
- generic non-ok with body.message surfaces the message text
- ok:true success path schedules the four pane reloads via setTimeout
Closes the codecov gap on PR #302.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
Sensitive data should not be used in the ARG or ENV commands:
api/Dockerfile#L113
SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "POSTGRES_PASSWORD")
More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/
|
|
Sensitive data should not be used in the ARG or ENV commands:
api/Dockerfile#L113
SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "JWT_SECRET_KEY")
More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/
|
|
build-discogsography (tableinator, true)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build-discogsography (tableinator, true)
embed field value must be shorter than 1024, got 2697
[`3070826`](https://github.com/SimplicityGuy/discogsography/commit/3070826ceb98b35888d11c6cc7585a95d2189460) fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger (#302)
* fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger
- Recovery codes were read from /api/auth/2fa/confirm response which only
returns {message}; now read from cached _setupData.recovery_codes returned
by /api/auth/2fa/setup. Also fixes Copy Codes copying empty string.
- Defined .btn-danger Tailwind component class so the Disable 2FA button
picks up flex centering from btn-base. The class was used by settings.js
but never defined.
- Loosened sync rate limit from 2/10minute to 10/minute and cooldown from
600s to 60s. Frontend now reads 429 message body instead of showing a
generic "Please try again later" alert.
- Hide #tasteStrip when empty so taste-fingerprint timeouts/unavailability
no longer leave a blank gap between the stats cards and the collection
table.
- Removed dead X-Mailin-Track headers from password reset email; Brevo's
v3 transactional API rejects standard email headers per the SDK's own
signature ("Standard email headers are not supported"), so per-message
click tracking control is impossible. Click tracking has to be disabled
in the Brevo dashboard. Added comment explaining why.
- Settings test mocks now match real API contract (setup returns
otpauth_uri + recovery_codes; confirm returns {message}). The wrong
mocks let the recovery codes bug ship.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: set NLQ toggle to display:flex explicitly
Clearing the inline `style="display: none;"` to '' should fall back to the
Tailwind `flex` class via the cascade, but in some browsers the layout
doesn't update until something else triggers a reflow. Setting display
explicitly to 'flex' is unambiguous and removes the dependency on cascade
ordering for elements with both inline-style hide and class-based show.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: cover new triggerSync branches in user-panes
Add 5 tests for the branches introduced by the sync 429 handling:
- 503 returns the service-unavailable message
- 429 with empty body falls back to the default cooldown message
- generic non-ok with body.detail surfaces the detail text
- generic non-ok with body.message surfaces the message text
- ok:true success path schedules the four pane reloads via setTimeout
Closes the codecov gap on PR #302.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
build-discogsography (explore, true)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build-discogsography (explore, true)
embed field value must be shorter than 1024, got 2697
[`3070826`](https://github.com/SimplicityGuy/discogsography/commit/3070826ceb98b35888d11c6cc7585a95d2189460) fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger (#302)
* fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger
- Recovery codes were read from /api/auth/2fa/confirm response which only
returns {message}; now read from cached _setupData.recovery_codes returned
by /api/auth/2fa/setup. Also fixes Copy Codes copying empty string.
- Defined .btn-danger Tailwind component class so the Disable 2FA button
picks up flex centering from btn-base. The class was used by settings.js
but never defined.
- Loosened sync rate limit from 2/10minute to 10/minute and cooldown from
600s to 60s. Frontend now reads 429 message body instead of showing a
generic "Please try again later" alert.
- Hide #tasteStrip when empty so taste-fingerprint timeouts/unavailability
no longer leave a blank gap between the stats cards and the collection
table.
- Removed dead X-Mailin-Track headers from password reset email; Brevo's
v3 transactional API rejects standard email headers per the SDK's own
signature ("Standard email headers are not supported"), so per-message
click tracking control is impossible. Click tracking has to be disabled
in the Brevo dashboard. Added comment explaining why.
- Settings test mocks now match real API contract (setup returns
otpauth_uri + recovery_codes; confirm returns {message}). The wrong
mocks let the recovery codes bug ship.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: set NLQ toggle to display:flex explicitly
Clearing the inline `style="display: none;"` to '' should fall back to the
Tailwind `flex` class via the cascade, but in some browsers the layout
doesn't update until something else triggers a reflow. Setting display
explicitly to 'flex' is unambiguous and removes the dependency on cascade
ordering for elements with both inline-style hide and class-based show.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: cover new triggerSync branches in user-panes
Add 5 tests for the branches introduced by the sync 429 handling:
- 503 returns the service-unavailable message
- 429 with empty body falls back to the default cooldown message
- generic non-ok with body.detail surfaces the detail text
- generic non-ok with body.message surfaces the message text
- ok:true success path schedules the four pane reloads via setTimeout
Closes the codecov gap on PR #302.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
build-discogsography (dashboard, true)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build-discogsography (dashboard, true)
embed field value must be shorter than 1024, got 2697
[`3070826`](https://github.com/SimplicityGuy/discogsography/commit/3070826ceb98b35888d11c6cc7585a95d2189460) fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger (#302)
* fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger
- Recovery codes were read from /api/auth/2fa/confirm response which only
returns {message}; now read from cached _setupData.recovery_codes returned
by /api/auth/2fa/setup. Also fixes Copy Codes copying empty string.
- Defined .btn-danger Tailwind component class so the Disable 2FA button
picks up flex centering from btn-base. The class was used by settings.js
but never defined.
- Loosened sync rate limit from 2/10minute to 10/minute and cooldown from
600s to 60s. Frontend now reads 429 message body instead of showing a
generic "Please try again later" alert.
- Hide #tasteStrip when empty so taste-fingerprint timeouts/unavailability
no longer leave a blank gap between the stats cards and the collection
table.
- Removed dead X-Mailin-Track headers from password reset email; Brevo's
v3 transactional API rejects standard email headers per the SDK's own
signature ("Standard email headers are not supported"), so per-message
click tracking control is impossible. Click tracking has to be disabled
in the Brevo dashboard. Added comment explaining why.
- Settings test mocks now match real API contract (setup returns
otpauth_uri + recovery_codes; confirm returns {message}). The wrong
mocks let the recovery codes bug ship.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: set NLQ toggle to display:flex explicitly
Clearing the inline `style="display: none;"` to '' should fall back to the
Tailwind `flex` class via the cascade, but in some browsers the layout
doesn't update until something else triggers a reflow. Setting display
explicitly to 'flex' is unambiguous and removes the dependency on cascade
ordering for elements with both inline-style hide and class-based show.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: cover new triggerSync branches in user-panes
Add 5 tests for the branches introduced by the sync 429 handling:
- 503 returns the service-unavailable message
- 429 with empty body falls back to the default cooldown message
- generic non-ok with body.detail surfaces the detail text
- generic non-ok with body.message surfaces the message text
- ok:true success path schedules the four pane reloads via setTimeout
Closes the codecov gap on PR #302.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
build-discogsography (graphinator, true)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build-discogsography (graphinator, true)
embed field value must be shorter than 1024, got 2697
[`3070826`](https://github.com/SimplicityGuy/discogsography/commit/3070826ceb98b35888d11c6cc7585a95d2189460) fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger (#302)
* fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger
- Recovery codes were read from /api/auth/2fa/confirm response which only
returns {message}; now read from cached _setupData.recovery_codes returned
by /api/auth/2fa/setup. Also fixes Copy Codes copying empty string.
- Defined .btn-danger Tailwind component class so the Disable 2FA button
picks up flex centering from btn-base. The class was used by settings.js
but never defined.
- Loosened sync rate limit from 2/10minute to 10/minute and cooldown from
600s to 60s. Frontend now reads 429 message body instead of showing a
generic "Please try again later" alert.
- Hide #tasteStrip when empty so taste-fingerprint timeouts/unavailability
no longer leave a blank gap between the stats cards and the collection
table.
- Removed dead X-Mailin-Track headers from password reset email; Brevo's
v3 transactional API rejects standard email headers per the SDK's own
signature ("Standard email headers are not supported"), so per-message
click tracking control is impossible. Click tracking has to be disabled
in the Brevo dashboard. Added comment explaining why.
- Settings test mocks now match real API contract (setup returns
otpauth_uri + recovery_codes; confirm returns {message}). The wrong
mocks let the recovery codes bug ship.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: set NLQ toggle to display:flex explicitly
Clearing the inline `style="display: none;"` to '' should fall back to the
Tailwind `flex` class via the cascade, but in some browsers the layout
doesn't update until something else triggers a reflow. Setting display
explicitly to 'flex' is unambiguous and removes the dependency on cascade
ordering for elements with both inline-style hide and class-based show.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: cover new triggerSync branches in user-panes
Add 5 tests for the branches introduced by the sync 429 handling:
- 503 returns the service-unavailable message
- 429 with empty body falls back to the default cooldown message
- generic non-ok with body.detail surfaces the detail text
- generic non-ok with body.message surfaces the message text
- ok:true success path schedules the four pane reloads via setTimeout
Closes the codecov gap on PR #302.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
build-discogsography (extractor, true)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build-discogsography (extractor, true)
embed field value must be shorter than 1024, got 2697
[`3070826`](https://github.com/SimplicityGuy/discogsography/commit/3070826ceb98b35888d11c6cc7585a95d2189460) fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger (#302)
* fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger
- Recovery codes were read from /api/auth/2fa/confirm response which only
returns {message}; now read from cached _setupData.recovery_codes returned
by /api/auth/2fa/setup. Also fixes Copy Codes copying empty string.
- Defined .btn-danger Tailwind component class so the Disable 2FA button
picks up flex centering from btn-base. The class was used by settings.js
but never defined.
- Loosened sync rate limit from 2/10minute to 10/minute and cooldown from
600s to 60s. Frontend now reads 429 message body instead of showing a
generic "Please try again later" alert.
- Hide #tasteStrip when empty so taste-fingerprint timeouts/unavailability
no longer leave a blank gap between the stats cards and the collection
table.
- Removed dead X-Mailin-Track headers from password reset email; Brevo's
v3 transactional API rejects standard email headers per the SDK's own
signature ("Standard email headers are not supported"), so per-message
click tracking control is impossible. Click tracking has to be disabled
in the Brevo dashboard. Added comment explaining why.
- Settings test mocks now match real API contract (setup returns
otpauth_uri + recovery_codes; confirm returns {message}). The wrong
mocks let the recovery codes bug ship.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: set NLQ toggle to display:flex explicitly
Clearing the inline `style="display: none;"` to '' should fall back to the
Tailwind `flex` class via the cascade, but in some browsers the layout
doesn't update until something else triggers a reflow. Setting display
explicitly to 'flex' is unambiguous and removes the dependency on cascade
ordering for elements with both inline-style hide and class-based show.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: cover new triggerSync branches in user-panes
Add 5 tests for the branches introduced by the sync 429 handling:
- 503 returns the service-unavailable message
- 429 with empty body falls back to the default cooldown message
- generic non-ok with body.detail surfaces the detail text
- generic non-ok with body.message surfaces the message text
- ok:true success path schedules the four pane reloads via setTimeout
Closes the codecov gap on PR #302.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
build-discogsography (brainztableinator, true)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build-discogsography (brainztableinator, true)
embed field value must be shorter than 1024, got 2697
[`3070826`](https://github.com/SimplicityGuy/discogsography/commit/3070826ceb98b35888d11c6cc7585a95d2189460) fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger (#302)
* fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger
- Recovery codes were read from /api/auth/2fa/confirm response which only
returns {message}; now read from cached _setupData.recovery_codes returned
by /api/auth/2fa/setup. Also fixes Copy Codes copying empty string.
- Defined .btn-danger Tailwind component class so the Disable 2FA button
picks up flex centering from btn-base. The class was used by settings.js
but never defined.
- Loosened sync rate limit from 2/10minute to 10/minute and cooldown from
600s to 60s. Frontend now reads 429 message body instead of showing a
generic "Please try again later" alert.
- Hide #tasteStrip when empty so taste-fingerprint timeouts/unavailability
no longer leave a blank gap between the stats cards and the collection
table.
- Removed dead X-Mailin-Track headers from password reset email; Brevo's
v3 transactional API rejects standard email headers per the SDK's own
signature ("Standard email headers are not supported"), so per-message
click tracking control is impossible. Click tracking has to be disabled
in the Brevo dashboard. Added comment explaining why.
- Settings test mocks now match real API contract (setup returns
otpauth_uri + recovery_codes; confirm returns {message}). The wrong
mocks let the recovery codes bug ship.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: set NLQ toggle to display:flex explicitly
Clearing the inline `style="display: none;"` to '' should fall back to the
Tailwind `flex` class via the cascade, but in some browsers the layout
doesn't update until something else triggers a reflow. Setting display
explicitly to 'flex' is unambiguous and removes the dependency on cascade
ordering for elements with both inline-style hide and class-based show.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: cover new triggerSync branches in user-panes
Add 5 tests for the branches introduced by the sync 429 handling:
- 503 returns the service-unavailable message
- 429 with empty body falls back to the default cooldown message
- generic non-ok with body.detail surfaces the detail text
- generic non-ok with body.message surfaces the message text
- ok:true success path schedules the four pane reloads via setTimeout
Closes the codecov gap on PR #302.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
build-discogsography (schema-init, true)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build-discogsography (schema-init, true)
embed field value must be shorter than 1024, got 2697
[`3070826`](https://github.com/SimplicityGuy/discogsography/commit/3070826ceb98b35888d11c6cc7585a95d2189460) fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger (#302)
* fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger
- Recovery codes were read from /api/auth/2fa/confirm response which only
returns {message}; now read from cached _setupData.recovery_codes returned
by /api/auth/2fa/setup. Also fixes Copy Codes copying empty string.
- Defined .btn-danger Tailwind component class so the Disable 2FA button
picks up flex centering from btn-base. The class was used by settings.js
but never defined.
- Loosened sync rate limit from 2/10minute to 10/minute and cooldown from
600s to 60s. Frontend now reads 429 message body instead of showing a
generic "Please try again later" alert.
- Hide #tasteStrip when empty so taste-fingerprint timeouts/unavailability
no longer leave a blank gap between the stats cards and the collection
table.
- Removed dead X-Mailin-Track headers from password reset email; Brevo's
v3 transactional API rejects standard email headers per the SDK's own
signature ("Standard email headers are not supported"), so per-message
click tracking control is impossible. Click tracking has to be disabled
in the Brevo dashboard. Added comment explaining why.
- Settings test mocks now match real API contract (setup returns
otpauth_uri + recovery_codes; confirm returns {message}). The wrong
mocks let the recovery codes bug ship.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: set NLQ toggle to display:flex explicitly
Clearing the inline `style="display: none;"` to '' should fall back to the
Tailwind `flex` class via the cascade, but in some browsers the layout
doesn't update until something else triggers a reflow. Setting display
explicitly to 'flex' is unambiguous and removes the dependency on cascade
ordering for elements with both inline-style hide and class-based show.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: cover new triggerSync branches in user-panes
Add 5 tests for the branches introduced by the sync 429 handling:
- 503 returns the service-unavailable message
- 429 with empty body falls back to the default cooldown message
- generic non-ok with body.detail surfaces the detail text
- generic non-ok with body.message surfaces the message text
- ok:true success path schedules the four pane reloads via setTimeout
Closes the codecov gap on PR #302.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
Sensitive data should not be used in the ARG or ENV commands:
schema-init/Dockerfile#L92
SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "POSTGRES_PASSWORD")
More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/
|
|
Sensitive data should not be used in the ARG or ENV commands:
schema-init/Dockerfile#L92
SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "NEO4J_PASSWORD")
More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/
|
|
build-discogsography (brainzgraphinator, true)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/setup-python@v5, astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build-discogsography (brainzgraphinator, true)
embed field value must be shorter than 1024, got 2697
[`3070826`](https://github.com/SimplicityGuy/discogsography/commit/3070826ceb98b35888d11c6cc7585a95d2189460) fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger (#302)
* fix: 2FA recovery codes display, sync rate limit, taste strip gap, btn-danger
- Recovery codes were read from /api/auth/2fa/confirm response which only
returns {message}; now read from cached _setupData.recovery_codes returned
by /api/auth/2fa/setup. Also fixes Copy Codes copying empty string.
- Defined .btn-danger Tailwind component class so the Disable 2FA button
picks up flex centering from btn-base. The class was used by settings.js
but never defined.
- Loosened sync rate limit from 2/10minute to 10/minute and cooldown from
600s to 60s. Frontend now reads 429 message body instead of showing a
generic "Please try again later" alert.
- Hide #tasteStrip when empty so taste-fingerprint timeouts/unavailability
no longer leave a blank gap between the stats cards and the collection
table.
- Removed dead X-Mailin-Track headers from password reset email; Brevo's
v3 transactional API rejects standard email headers per the SDK's own
signature ("Standard email headers are not supported"), so per-message
click tracking control is impossible. Click tracking has to be disabled
in the Brevo dashboard. Added comment explaining why.
- Settings test mocks now match real API contract (setup returns
otpauth_uri + recovery_codes; confirm returns {message}). The wrong
mocks let the recovery codes bug ship.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: set NLQ toggle to display:flex explicitly
Clearing the inline `style="display: none;"` to '' should fall back to the
Tailwind `flex` class via the cascade, but in some browsers the layout
doesn't update until something else triggers a reflow. Setting display
explicitly to 'flex' is unambiguous and removes the dependency on cascade
ordering for elements with both inline-style hide and class-based show.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: cover new triggerSync branches in user-panes
Add 5 tests for the branches introduced by the sync 429 handling:
- 503 returns the service-unavailable message
- 429 with empty body falls back to the default cooldown message
- generic non-ok with body.detail surfaces the detail text
- generic non-ok with body.message surfaces the message text
- ok:true success path schedules the four pane reloads via setTimeout
Closes the codecov gap on PR #302.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
Cache Performance
Docker cache hit for insights
|
|
Build Metrics
Service: insights, Duration: 106s, Cache Used: true
|
|
Cache Performance
Docker cache hit for api
|
|
Build Metrics
Service: api, Duration: 114s, Cache Used: true
|
|
Cache Performance
Docker cache hit for tableinator
|
|
Build Metrics
Service: tableinator, Duration: 126s, Cache Used: true
|
|
Cache Performance
Docker cache hit for explore
|
|
Build Metrics
Service: explore, Duration: 126s, Cache Used: true
|
|
Cache Performance
Docker cache hit for dashboard
|
|
Build Metrics
Service: dashboard, Duration: 132s, Cache Used: true
|
|
Cache Performance
Docker cache hit for graphinator
|
|
Build Metrics
Service: graphinator, Duration: 145s, Cache Used: true
|
|
Cache Performance
Docker cache hit for extractor
|
|
Build Metrics
Service: extractor, Duration: 179s, Cache Used: true
|
|
Cache Performance
Docker cache hit for brainztableinator
|
|
Build Metrics
Service: brainztableinator, Duration: 181s, Cache Used: true
|
|
Cache Performance
Docker cache hit for schema-init
|
|
Build Metrics
Service: schema-init, Duration: 189s, Cache Used: true
|
|
Cache Performance
Docker cache hit for brainzgraphinator
|
|
Build Metrics
Service: brainzgraphinator, Duration: 223s, Cache Used: true
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
SimplicityGuy~discogsography~BNIU66.dockerbuild
|
84 KB |
sha256:6316671af18c9669c7f960bbeb516f028f32d3b7a565b8ab79c5eddc148c031e
|
|
|
SimplicityGuy~discogsography~C633B0.dockerbuild
|
108 KB |
sha256:b9a27e08d1f68371f4c3a7e1002e1662b4c4457738d3fadd1d06ffd369af09fe
|
|
|
SimplicityGuy~discogsography~D7CQFY.dockerbuild
|
84.4 KB |
sha256:fef2a1690e22046b21159c12800108eceb1150b14211abc00d1929e47b686938
|
|
|
SimplicityGuy~discogsography~EO4CV2.dockerbuild
|
77.1 KB |
sha256:c06ad2e1290ceef8bbf87c209999c6d832abfb2c7458d2b2284ef8e9c3d859f9
|
|
|
SimplicityGuy~discogsography~GJN5SB.dockerbuild
|
83.7 KB |
sha256:13f66f14f2f751e5982da03f9103fa215215b46d5522b1c9afa54a952a5ba0d5
|
|
|
SimplicityGuy~discogsography~GW1553.dockerbuild
|
88 KB |
sha256:fcdb80be9f51a8a52bf1ab2ad7c4c313bb289c3e3c18318f7cf5fc2e8c33d754
|
|
|
SimplicityGuy~discogsography~NPQBKB.dockerbuild
|
83.7 KB |
sha256:45b91ede4d71a804b910c9a7a66b77d877eee27d51a8eacdc9e87ea17540065c
|
|
|
SimplicityGuy~discogsography~QY9F12.dockerbuild
|
83.8 KB |
sha256:c82ee09c286ec590363eb8043bd805ab96ed63c4582f0a919b685802d38302dc
|
|
|
SimplicityGuy~discogsography~TZ16I8.dockerbuild
|
114 KB |
sha256:4aeaa93dfcc9bed97fedcc9d32f657ef66ce694215c033cc5420067175b9452b
|
|
|
SimplicityGuy~discogsography~U4Q5MW.dockerbuild
|
106 KB |
sha256:475fcb2ac4e03a6c0895464359a5f7e0573ea29c2545bc8b9456efa529304e84
|
|