Skip to content

feat: redesign Ask as global pill with agent-driven UI actions (#304) #1174

feat: redesign Ask as global pill with agent-driven UI actions (#304)

feat: redesign Ask as global pill with agent-driven UI actions (#304) #1174

Triggered via push April 15, 2026 17:29
Status Success
Total duration 11m 57s
Artifacts 10

build.yml

on: push
detect-changes
6s
detect-changes
run-code-quality  /  code-quality
2m 30s
run-code-quality / code-quality
list-sub-projects  /  list-sub-projects
2s
list-sub-projects / list-sub-projects
Matrix: run-e2e-tests / e2e-test
run-security  /  Python Security
42s
run-security / Python Security
run-security  /  Semgrep CE Scan
59s
run-security / Semgrep CE Scan
run-security  /  Rust Security
19s
run-security / Rust Security
run-security  /  Secret Scanning
13s
run-security / Secret Scanning
run-security  /  Container Scanning
25s
run-security / Container Scanning
run-docker-compose-validate  /  validate-compose
11s
run-docker-compose-validate / validate-compose
run-tests  /  test-api
48s
run-tests / test-api
run-tests  /  test-common
46s
run-tests / test-common
run-tests  /  test-dashboard
1m 3s
run-tests / test-dashboard
run-tests  /  test-explore
32s
run-tests / test-explore
run-tests  /  test-insights
27s
run-tests / test-insights
run-tests  /  test-mcp-server
25s
run-tests / test-mcp-server
run-tests  /  test-brainzgraphinator
22s
run-tests / test-brainzgraphinator
run-tests  /  test-graphinator
46s
run-tests / test-graphinator
run-tests  /  test-schema-init
22s
run-tests / test-schema-init
run-tests  /  test-tableinator
42s
run-tests / test-tableinator
run-tests  /  test-brainztableinator
26s
run-tests / test-brainztableinator
run-tests  /  test-js
33s
run-tests / test-js
run-tests  /  test-extractor
3m 8s
run-tests / test-extractor
Matrix: run-docker-validate / validate-dockerfiles
aggregate-results
2s
aggregate-results
Matrix: build-discogsography
Fit to window
Zoom out
Zoom in

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-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-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-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-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 / 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-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-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-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-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-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-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-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-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 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
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/
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/
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 7073 [`f26e431`](https://github.com/SimplicityGuy/discogsography/commit/f26e431324a04a92b169561ce995427a9a2eec9a) feat: redesign Ask as global pill with agent-driven UI actions (#304) * docs: add ask-mode integration design spec Designs the Explore Ask feature redesign as a global floating pill with agent-driven UI actions, dynamic suggestions, and a shared common/agent_tools registry for the NLQ engine and MCP server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add ask-mode integration implementation plan 31 TDD tasks across 10 phases implementing the approved spec: shared agent_tools registry, NLQ engine action contract, suggestions endpoint, MCP server refactor, floating pill component with suggestions and action applier, DOMPurify markdown renderer, summary strip, and E2E coverage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(common): scaffold agent_tools package * feat(common): add agent_tools.graph.find_path * test(common): add find_path target-missing and no-path error cases * feat(common): add entity detail tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(common): add discovery and stats tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate _handle_find_path to common.agent_tools Replace the inline name-resolution + find_shortest_path logic in NLQToolRunner._handle_find_path with a call to the shared common.agent_tools.find_path, injecting a resolve_name closure that wraps EXPLORE_DISPATCH (handles numeric pass-through, missing type pass-through, and named lookups). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate remaining _handle_* methods to common.agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): add Action discriminated-union schema Defines 10 Pydantic action types with a `type` literal discriminator for strict JSON parsing. parse_action_list drops malformed entries with a warning log. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): NLQResult carries agent-emitted UI actions Add actions: list[Action] field to NLQResult, an _extract_actions() helper that strips the <!--actions:[...]--> marker from agent text, and extend the system prompt so Claude knows to emit the marker. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/routers/nlq): emit actions SSE event before result Add an `actions` SSE event between status events and the final `result` event in `_stream_response`, and include `actions` in the non-SSE JSON response branch for consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): template-based suggestion engine * feat(api/routers/nlq): add /api/nlq/suggestions endpoint Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(mcp-server): route find_path through common.agent_tools Delegates mcp_server.find_path to common.agent_tools.find_path via API-backed resolver closures (_api_get for name resolution, /api/path for path traversal), so future shared tool additions automatically benefit MCP clients without changes to server.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): scaffold NlqPill component with collapsed state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill expand/collapse with keyboard shortcuts Add click-to-expand, ⌘K/Ctrl+K, ? (when no input focused), Esc-to-collapse, and expanded-state render with focused input to NlqPill. Install @testing-library/dom for fireEvent in tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqSuggestions chip renderer and history store Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill wires suggestions into expanded card Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqActionApplier with ord
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/
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/
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 7073 [`f26e431`](https://github.com/SimplicityGuy/discogsography/commit/f26e431324a04a92b169561ce995427a9a2eec9a) feat: redesign Ask as global pill with agent-driven UI actions (#304) * docs: add ask-mode integration design spec Designs the Explore Ask feature redesign as a global floating pill with agent-driven UI actions, dynamic suggestions, and a shared common/agent_tools registry for the NLQ engine and MCP server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add ask-mode integration implementation plan 31 TDD tasks across 10 phases implementing the approved spec: shared agent_tools registry, NLQ engine action contract, suggestions endpoint, MCP server refactor, floating pill component with suggestions and action applier, DOMPurify markdown renderer, summary strip, and E2E coverage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(common): scaffold agent_tools package * feat(common): add agent_tools.graph.find_path * test(common): add find_path target-missing and no-path error cases * feat(common): add entity detail tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(common): add discovery and stats tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate _handle_find_path to common.agent_tools Replace the inline name-resolution + find_shortest_path logic in NLQToolRunner._handle_find_path with a call to the shared common.agent_tools.find_path, injecting a resolve_name closure that wraps EXPLORE_DISPATCH (handles numeric pass-through, missing type pass-through, and named lookups). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate remaining _handle_* methods to common.agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): add Action discriminated-union schema Defines 10 Pydantic action types with a `type` literal discriminator for strict JSON parsing. parse_action_list drops malformed entries with a warning log. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): NLQResult carries agent-emitted UI actions Add actions: list[Action] field to NLQResult, an _extract_actions() helper that strips the <!--actions:[...]--> marker from agent text, and extend the system prompt so Claude knows to emit the marker. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/routers/nlq): emit actions SSE event before result Add an `actions` SSE event between status events and the final `result` event in `_stream_response`, and include `actions` in the non-SSE JSON response branch for consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): template-based suggestion engine * feat(api/routers/nlq): add /api/nlq/suggestions endpoint Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(mcp-server): route find_path through common.agent_tools Delegates mcp_server.find_path to common.agent_tools.find_path via API-backed resolver closures (_api_get for name resolution, /api/path for path traversal), so future shared tool additions automatically benefit MCP clients without changes to server.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): scaffold NlqPill component with collapsed state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill expand/collapse with keyboard shortcuts Add click-to-expand, ⌘K/Ctrl+K, ? (when no input focused), Esc-to-collapse, and expanded-state render with focused input to NlqPill. Install @testing-library/dom for fireEvent in tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqSuggestions chip renderer and history store Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill wires suggestions into expanded card Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqActionApplier with ord
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 7073 [`f26e431`](https://github.com/SimplicityGuy/discogsography/commit/f26e431324a04a92b169561ce995427a9a2eec9a) feat: redesign Ask as global pill with agent-driven UI actions (#304) * docs: add ask-mode integration design spec Designs the Explore Ask feature redesign as a global floating pill with agent-driven UI actions, dynamic suggestions, and a shared common/agent_tools registry for the NLQ engine and MCP server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add ask-mode integration implementation plan 31 TDD tasks across 10 phases implementing the approved spec: shared agent_tools registry, NLQ engine action contract, suggestions endpoint, MCP server refactor, floating pill component with suggestions and action applier, DOMPurify markdown renderer, summary strip, and E2E coverage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(common): scaffold agent_tools package * feat(common): add agent_tools.graph.find_path * test(common): add find_path target-missing and no-path error cases * feat(common): add entity detail tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(common): add discovery and stats tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate _handle_find_path to common.agent_tools Replace the inline name-resolution + find_shortest_path logic in NLQToolRunner._handle_find_path with a call to the shared common.agent_tools.find_path, injecting a resolve_name closure that wraps EXPLORE_DISPATCH (handles numeric pass-through, missing type pass-through, and named lookups). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate remaining _handle_* methods to common.agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): add Action discriminated-union schema Defines 10 Pydantic action types with a `type` literal discriminator for strict JSON parsing. parse_action_list drops malformed entries with a warning log. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): NLQResult carries agent-emitted UI actions Add actions: list[Action] field to NLQResult, an _extract_actions() helper that strips the <!--actions:[...]--> marker from agent text, and extend the system prompt so Claude knows to emit the marker. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/routers/nlq): emit actions SSE event before result Add an `actions` SSE event between status events and the final `result` event in `_stream_response`, and include `actions` in the non-SSE JSON response branch for consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): template-based suggestion engine * feat(api/routers/nlq): add /api/nlq/suggestions endpoint Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(mcp-server): route find_path through common.agent_tools Delegates mcp_server.find_path to common.agent_tools.find_path via API-backed resolver closures (_api_get for name resolution, /api/path for path traversal), so future shared tool additions automatically benefit MCP clients without changes to server.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): scaffold NlqPill component with collapsed state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill expand/collapse with keyboard shortcuts Add click-to-expand, ⌘K/Ctrl+K, ? (when no input focused), Esc-to-collapse, and expanded-state render with focused input to NlqPill. Install @testing-library/dom for fireEvent in tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqSuggestions chip renderer and history store Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill wires suggestions into expanded card Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqActionApplier with ord
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 7073 [`f26e431`](https://github.com/SimplicityGuy/discogsography/commit/f26e431324a04a92b169561ce995427a9a2eec9a) feat: redesign Ask as global pill with agent-driven UI actions (#304) * docs: add ask-mode integration design spec Designs the Explore Ask feature redesign as a global floating pill with agent-driven UI actions, dynamic suggestions, and a shared common/agent_tools registry for the NLQ engine and MCP server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add ask-mode integration implementation plan 31 TDD tasks across 10 phases implementing the approved spec: shared agent_tools registry, NLQ engine action contract, suggestions endpoint, MCP server refactor, floating pill component with suggestions and action applier, DOMPurify markdown renderer, summary strip, and E2E coverage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(common): scaffold agent_tools package * feat(common): add agent_tools.graph.find_path * test(common): add find_path target-missing and no-path error cases * feat(common): add entity detail tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(common): add discovery and stats tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate _handle_find_path to common.agent_tools Replace the inline name-resolution + find_shortest_path logic in NLQToolRunner._handle_find_path with a call to the shared common.agent_tools.find_path, injecting a resolve_name closure that wraps EXPLORE_DISPATCH (handles numeric pass-through, missing type pass-through, and named lookups). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate remaining _handle_* methods to common.agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): add Action discriminated-union schema Defines 10 Pydantic action types with a `type` literal discriminator for strict JSON parsing. parse_action_list drops malformed entries with a warning log. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): NLQResult carries agent-emitted UI actions Add actions: list[Action] field to NLQResult, an _extract_actions() helper that strips the <!--actions:[...]--> marker from agent text, and extend the system prompt so Claude knows to emit the marker. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/routers/nlq): emit actions SSE event before result Add an `actions` SSE event between status events and the final `result` event in `_stream_response`, and include `actions` in the non-SSE JSON response branch for consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): template-based suggestion engine * feat(api/routers/nlq): add /api/nlq/suggestions endpoint Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(mcp-server): route find_path through common.agent_tools Delegates mcp_server.find_path to common.agent_tools.find_path via API-backed resolver closures (_api_get for name resolution, /api/path for path traversal), so future shared tool additions automatically benefit MCP clients without changes to server.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): scaffold NlqPill component with collapsed state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill expand/collapse with keyboard shortcuts Add click-to-expand, ⌘K/Ctrl+K, ? (when no input focused), Esc-to-collapse, and expanded-state render with focused input to NlqPill. Install @testing-library/dom for fireEvent in tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqSuggestions chip renderer and history store Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill wires suggestions into expanded card Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqActionApplier with ord
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 7073 [`f26e431`](https://github.com/SimplicityGuy/discogsography/commit/f26e431324a04a92b169561ce995427a9a2eec9a) feat: redesign Ask as global pill with agent-driven UI actions (#304) * docs: add ask-mode integration design spec Designs the Explore Ask feature redesign as a global floating pill with agent-driven UI actions, dynamic suggestions, and a shared common/agent_tools registry for the NLQ engine and MCP server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add ask-mode integration implementation plan 31 TDD tasks across 10 phases implementing the approved spec: shared agent_tools registry, NLQ engine action contract, suggestions endpoint, MCP server refactor, floating pill component with suggestions and action applier, DOMPurify markdown renderer, summary strip, and E2E coverage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(common): scaffold agent_tools package * feat(common): add agent_tools.graph.find_path * test(common): add find_path target-missing and no-path error cases * feat(common): add entity detail tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(common): add discovery and stats tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate _handle_find_path to common.agent_tools Replace the inline name-resolution + find_shortest_path logic in NLQToolRunner._handle_find_path with a call to the shared common.agent_tools.find_path, injecting a resolve_name closure that wraps EXPLORE_DISPATCH (handles numeric pass-through, missing type pass-through, and named lookups). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate remaining _handle_* methods to common.agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): add Action discriminated-union schema Defines 10 Pydantic action types with a `type` literal discriminator for strict JSON parsing. parse_action_list drops malformed entries with a warning log. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): NLQResult carries agent-emitted UI actions Add actions: list[Action] field to NLQResult, an _extract_actions() helper that strips the <!--actions:[...]--> marker from agent text, and extend the system prompt so Claude knows to emit the marker. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/routers/nlq): emit actions SSE event before result Add an `actions` SSE event between status events and the final `result` event in `_stream_response`, and include `actions` in the non-SSE JSON response branch for consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): template-based suggestion engine * feat(api/routers/nlq): add /api/nlq/suggestions endpoint Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(mcp-server): route find_path through common.agent_tools Delegates mcp_server.find_path to common.agent_tools.find_path via API-backed resolver closures (_api_get for name resolution, /api/path for path traversal), so future shared tool additions automatically benefit MCP clients without changes to server.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): scaffold NlqPill component with collapsed state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill expand/collapse with keyboard shortcuts Add click-to-expand, ⌘K/Ctrl+K, ? (when no input focused), Esc-to-collapse, and expanded-state render with focused input to NlqPill. Install @testing-library/dom for fireEvent in tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqSuggestions chip renderer and history store Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill wires suggestions into expanded card Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqActionApplier with ord
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 7073 [`f26e431`](https://github.com/SimplicityGuy/discogsography/commit/f26e431324a04a92b169561ce995427a9a2eec9a) feat: redesign Ask as global pill with agent-driven UI actions (#304) * docs: add ask-mode integration design spec Designs the Explore Ask feature redesign as a global floating pill with agent-driven UI actions, dynamic suggestions, and a shared common/agent_tools registry for the NLQ engine and MCP server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add ask-mode integration implementation plan 31 TDD tasks across 10 phases implementing the approved spec: shared agent_tools registry, NLQ engine action contract, suggestions endpoint, MCP server refactor, floating pill component with suggestions and action applier, DOMPurify markdown renderer, summary strip, and E2E coverage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(common): scaffold agent_tools package * feat(common): add agent_tools.graph.find_path * test(common): add find_path target-missing and no-path error cases * feat(common): add entity detail tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(common): add discovery and stats tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate _handle_find_path to common.agent_tools Replace the inline name-resolution + find_shortest_path logic in NLQToolRunner._handle_find_path with a call to the shared common.agent_tools.find_path, injecting a resolve_name closure that wraps EXPLORE_DISPATCH (handles numeric pass-through, missing type pass-through, and named lookups). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate remaining _handle_* methods to common.agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): add Action discriminated-union schema Defines 10 Pydantic action types with a `type` literal discriminator for strict JSON parsing. parse_action_list drops malformed entries with a warning log. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): NLQResult carries agent-emitted UI actions Add actions: list[Action] field to NLQResult, an _extract_actions() helper that strips the <!--actions:[...]--> marker from agent text, and extend the system prompt so Claude knows to emit the marker. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/routers/nlq): emit actions SSE event before result Add an `actions` SSE event between status events and the final `result` event in `_stream_response`, and include `actions` in the non-SSE JSON response branch for consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): template-based suggestion engine * feat(api/routers/nlq): add /api/nlq/suggestions endpoint Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(mcp-server): route find_path through common.agent_tools Delegates mcp_server.find_path to common.agent_tools.find_path via API-backed resolver closures (_api_get for name resolution, /api/path for path traversal), so future shared tool additions automatically benefit MCP clients without changes to server.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): scaffold NlqPill component with collapsed state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill expand/collapse with keyboard shortcuts Add click-to-expand, ⌘K/Ctrl+K, ? (when no input focused), Esc-to-collapse, and expanded-state render with focused input to NlqPill. Install @testing-library/dom for fireEvent in tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqSuggestions chip renderer and history store Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill wires suggestions into expanded card Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqActionApplier with ord
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 7073 [`f26e431`](https://github.com/SimplicityGuy/discogsography/commit/f26e431324a04a92b169561ce995427a9a2eec9a) feat: redesign Ask as global pill with agent-driven UI actions (#304) * docs: add ask-mode integration design spec Designs the Explore Ask feature redesign as a global floating pill with agent-driven UI actions, dynamic suggestions, and a shared common/agent_tools registry for the NLQ engine and MCP server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add ask-mode integration implementation plan 31 TDD tasks across 10 phases implementing the approved spec: shared agent_tools registry, NLQ engine action contract, suggestions endpoint, MCP server refactor, floating pill component with suggestions and action applier, DOMPurify markdown renderer, summary strip, and E2E coverage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(common): scaffold agent_tools package * feat(common): add agent_tools.graph.find_path * test(common): add find_path target-missing and no-path error cases * feat(common): add entity detail tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(common): add discovery and stats tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate _handle_find_path to common.agent_tools Replace the inline name-resolution + find_shortest_path logic in NLQToolRunner._handle_find_path with a call to the shared common.agent_tools.find_path, injecting a resolve_name closure that wraps EXPLORE_DISPATCH (handles numeric pass-through, missing type pass-through, and named lookups). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate remaining _handle_* methods to common.agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): add Action discriminated-union schema Defines 10 Pydantic action types with a `type` literal discriminator for strict JSON parsing. parse_action_list drops malformed entries with a warning log. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): NLQResult carries agent-emitted UI actions Add actions: list[Action] field to NLQResult, an _extract_actions() helper that strips the <!--actions:[...]--> marker from agent text, and extend the system prompt so Claude knows to emit the marker. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/routers/nlq): emit actions SSE event before result Add an `actions` SSE event between status events and the final `result` event in `_stream_response`, and include `actions` in the non-SSE JSON response branch for consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): template-based suggestion engine * feat(api/routers/nlq): add /api/nlq/suggestions endpoint Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(mcp-server): route find_path through common.agent_tools Delegates mcp_server.find_path to common.agent_tools.find_path via API-backed resolver closures (_api_get for name resolution, /api/path for path traversal), so future shared tool additions automatically benefit MCP clients without changes to server.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): scaffold NlqPill component with collapsed state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill expand/collapse with keyboard shortcuts Add click-to-expand, ⌘K/Ctrl+K, ? (when no input focused), Esc-to-collapse, and expanded-state render with focused input to NlqPill. Install @testing-library/dom for fireEvent in tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqSuggestions chip renderer and history store Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill wires suggestions into expanded card Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqActionApplier with ord
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 7073 [`f26e431`](https://github.com/SimplicityGuy/discogsography/commit/f26e431324a04a92b169561ce995427a9a2eec9a) feat: redesign Ask as global pill with agent-driven UI actions (#304) * docs: add ask-mode integration design spec Designs the Explore Ask feature redesign as a global floating pill with agent-driven UI actions, dynamic suggestions, and a shared common/agent_tools registry for the NLQ engine and MCP server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add ask-mode integration implementation plan 31 TDD tasks across 10 phases implementing the approved spec: shared agent_tools registry, NLQ engine action contract, suggestions endpoint, MCP server refactor, floating pill component with suggestions and action applier, DOMPurify markdown renderer, summary strip, and E2E coverage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(common): scaffold agent_tools package * feat(common): add agent_tools.graph.find_path * test(common): add find_path target-missing and no-path error cases * feat(common): add entity detail tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(common): add discovery and stats tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate _handle_find_path to common.agent_tools Replace the inline name-resolution + find_shortest_path logic in NLQToolRunner._handle_find_path with a call to the shared common.agent_tools.find_path, injecting a resolve_name closure that wraps EXPLORE_DISPATCH (handles numeric pass-through, missing type pass-through, and named lookups). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate remaining _handle_* methods to common.agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): add Action discriminated-union schema Defines 10 Pydantic action types with a `type` literal discriminator for strict JSON parsing. parse_action_list drops malformed entries with a warning log. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): NLQResult carries agent-emitted UI actions Add actions: list[Action] field to NLQResult, an _extract_actions() helper that strips the <!--actions:[...]--> marker from agent text, and extend the system prompt so Claude knows to emit the marker. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/routers/nlq): emit actions SSE event before result Add an `actions` SSE event between status events and the final `result` event in `_stream_response`, and include `actions` in the non-SSE JSON response branch for consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): template-based suggestion engine * feat(api/routers/nlq): add /api/nlq/suggestions endpoint Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(mcp-server): route find_path through common.agent_tools Delegates mcp_server.find_path to common.agent_tools.find_path via API-backed resolver closures (_api_get for name resolution, /api/path for path traversal), so future shared tool additions automatically benefit MCP clients without changes to server.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): scaffold NlqPill component with collapsed state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill expand/collapse with keyboard shortcuts Add click-to-expand, ⌘K/Ctrl+K, ? (when no input focused), Esc-to-collapse, and expanded-state render with focused input to NlqPill. Install @testing-library/dom for fireEvent in tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqSuggestions chip renderer and history store Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill wires suggestions into expanded card Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqActionApplier with ord
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 7073 [`f26e431`](https://github.com/SimplicityGuy/discogsography/commit/f26e431324a04a92b169561ce995427a9a2eec9a) feat: redesign Ask as global pill with agent-driven UI actions (#304) * docs: add ask-mode integration design spec Designs the Explore Ask feature redesign as a global floating pill with agent-driven UI actions, dynamic suggestions, and a shared common/agent_tools registry for the NLQ engine and MCP server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add ask-mode integration implementation plan 31 TDD tasks across 10 phases implementing the approved spec: shared agent_tools registry, NLQ engine action contract, suggestions endpoint, MCP server refactor, floating pill component with suggestions and action applier, DOMPurify markdown renderer, summary strip, and E2E coverage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(common): scaffold agent_tools package * feat(common): add agent_tools.graph.find_path * test(common): add find_path target-missing and no-path error cases * feat(common): add entity detail tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(common): add discovery and stats tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate _handle_find_path to common.agent_tools Replace the inline name-resolution + find_shortest_path logic in NLQToolRunner._handle_find_path with a call to the shared common.agent_tools.find_path, injecting a resolve_name closure that wraps EXPLORE_DISPATCH (handles numeric pass-through, missing type pass-through, and named lookups). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate remaining _handle_* methods to common.agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): add Action discriminated-union schema Defines 10 Pydantic action types with a `type` literal discriminator for strict JSON parsing. parse_action_list drops malformed entries with a warning log. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): NLQResult carries agent-emitted UI actions Add actions: list[Action] field to NLQResult, an _extract_actions() helper that strips the <!--actions:[...]--> marker from agent text, and extend the system prompt so Claude knows to emit the marker. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/routers/nlq): emit actions SSE event before result Add an `actions` SSE event between status events and the final `result` event in `_stream_response`, and include `actions` in the non-SSE JSON response branch for consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): template-based suggestion engine * feat(api/routers/nlq): add /api/nlq/suggestions endpoint Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(mcp-server): route find_path through common.agent_tools Delegates mcp_server.find_path to common.agent_tools.find_path via API-backed resolver closures (_api_get for name resolution, /api/path for path traversal), so future shared tool additions automatically benefit MCP clients without changes to server.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): scaffold NlqPill component with collapsed state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill expand/collapse with keyboard shortcuts Add click-to-expand, ⌘K/Ctrl+K, ? (when no input focused), Esc-to-collapse, and expanded-state render with focused input to NlqPill. Install @testing-library/dom for fireEvent in tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqSuggestions chip renderer and history store Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill wires suggestions into expanded card Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqActionApplier with ord
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 (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 7073 [`f26e431`](https://github.com/SimplicityGuy/discogsography/commit/f26e431324a04a92b169561ce995427a9a2eec9a) feat: redesign Ask as global pill with agent-driven UI actions (#304) * docs: add ask-mode integration design spec Designs the Explore Ask feature redesign as a global floating pill with agent-driven UI actions, dynamic suggestions, and a shared common/agent_tools registry for the NLQ engine and MCP server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add ask-mode integration implementation plan 31 TDD tasks across 10 phases implementing the approved spec: shared agent_tools registry, NLQ engine action contract, suggestions endpoint, MCP server refactor, floating pill component with suggestions and action applier, DOMPurify markdown renderer, summary strip, and E2E coverage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(common): scaffold agent_tools package * feat(common): add agent_tools.graph.find_path * test(common): add find_path target-missing and no-path error cases * feat(common): add entity detail tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(common): add discovery and stats tools to agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate _handle_find_path to common.agent_tools Replace the inline name-resolution + find_shortest_path logic in NLQToolRunner._handle_find_path with a call to the shared common.agent_tools.find_path, injecting a resolve_name closure that wraps EXPLORE_DISPATCH (handles numeric pass-through, missing type pass-through, and named lookups). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(api/nlq): delegate remaining _handle_* methods to common.agent_tools Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): add Action discriminated-union schema Defines 10 Pydantic action types with a `type` literal discriminator for strict JSON parsing. parse_action_list drops malformed entries with a warning log. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): NLQResult carries agent-emitted UI actions Add actions: list[Action] field to NLQResult, an _extract_actions() helper that strips the <!--actions:[...]--> marker from agent text, and extend the system prompt so Claude knows to emit the marker. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/routers/nlq): emit actions SSE event before result Add an `actions` SSE event between status events and the final `result` event in `_stream_response`, and include `actions` in the non-SSE JSON response branch for consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(api/nlq): template-based suggestion engine * feat(api/routers/nlq): add /api/nlq/suggestions endpoint Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(mcp-server): route find_path through common.agent_tools Delegates mcp_server.find_path to common.agent_tools.find_path via API-backed resolver closures (_api_get for name resolution, /api/path for path traversal), so future shared tool additions automatically benefit MCP clients without changes to server.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): scaffold NlqPill component with collapsed state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill expand/collapse with keyboard shortcuts Add click-to-expand, ⌘K/Ctrl+K, ? (when no input focused), Esc-to-collapse, and expanded-state render with focused input to NlqPill. Install @testing-library/dom for fireEvent in tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqSuggestions chip renderer and history store Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqPill wires suggestions into expanded card Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(explore): NlqActionApplier with ord
Cache Performance
Docker cache hit for api
Build Metrics
Service: api, Duration: 124s, Cache Used: true
Cache Performance
Docker cache hit for brainztableinator
Build Metrics
Service: brainztableinator, Duration: 138s, Cache Used: true
Cache Performance
Docker cache hit for insights
Build Metrics
Service: insights, Duration: 132s, Cache Used: true
Cache Performance
Docker cache hit for brainzgraphinator
Build Metrics
Service: brainzgraphinator, Duration: 135s, Cache Used: true
Cache Performance
Docker cache hit for tableinator
Build Metrics
Service: tableinator, Duration: 140s, Cache Used: true
Cache Performance
Docker cache hit for extractor
Build Metrics
Service: extractor, Duration: 142s, Cache Used: true
Cache Performance
Docker cache hit for dashboard
Build Metrics
Service: dashboard, Duration: 144s, Cache Used: true
Cache Performance
Docker cache hit for explore
Build Metrics
Service: explore, Duration: 143s, Cache Used: true
Cache Performance
Docker cache hit for schema-init
Build Metrics
Service: schema-init, Duration: 183s, Cache Used: true
Cache Performance
Docker cache hit for graphinator
Build Metrics
Service: graphinator, Duration: 217s, Cache Used: true

Artifacts

Produced during runtime
Name Size Digest
SimplicityGuy~discogsography~93BXGO.dockerbuild
84.7 KB
sha256:413c4dc72f3717462dd311649a325609045aa1739d111c0f8d66452594683f1d
SimplicityGuy~discogsography~9XKTOC.dockerbuild
88.8 KB
sha256:7f9d495275e71d74a9fb685dd824cc8f09e6f5738c44491aea2ebfb1ccd4e4df
SimplicityGuy~discogsography~A7QQWV.dockerbuild
116 KB
sha256:0a5fc383194ff87fe7af828125b171ec1a9a765c7919bf1f37a613e629db2679
SimplicityGuy~discogsography~DJLN5L.dockerbuild
109 KB
sha256:bf5f19b3c18158978b1845478a794c6b204ed6a73a3651da80471aa4add93b26
SimplicityGuy~discogsography~HZM0N0.dockerbuild
84.7 KB
sha256:0f7e4fa4fbb5035df381691b30efe16c976b0be4e59240f342d3ce9f26c2f6d6
SimplicityGuy~discogsography~I9S71W.dockerbuild
84.9 KB
sha256:3a8c2e669321446a9e869ccd0ade1494feea0014bee79a2fa16049250c48e1db
SimplicityGuy~discogsography~RPM60Q.dockerbuild
76.9 KB
sha256:2c467723e363324238b6e33aaaf7f859da964821545f7af73fe8de2468d06c75
SimplicityGuy~discogsography~RQGNXX.dockerbuild
85.1 KB
sha256:aa67e7d74085fba653ac05944da1f0c998e78adb7c71d4e8d2b9fcca638315b0
SimplicityGuy~discogsography~T59LWS.dockerbuild
85.3 KB
sha256:ecfdbcd439b17abc67ac25eea7207580f48e62685735c6a9db70d2745c8ed115
SimplicityGuy~discogsography~V93YEO.dockerbuild
107 KB
sha256:423527867ea9114fd5c1ab54655be17b1907116e6a21a1e742f851201df3af63