Skip to content

Bump library/node from 24-alpine to 26-alpine#4

Merged
tibroc merged 1 commit into
mainfrom
dependabot/docker/library/node-26-alpine
Jun 18, 2026
Merged

Bump library/node from 24-alpine to 26-alpine#4
tibroc merged 1 commit into
mainfrom
dependabot/docker/library/node-26-alpine

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 17, 2026

Copy link
Copy Markdown
Contributor

Bumps library/node from 24-alpine to 26-alpine.

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file docker Pull requests that update docker code labels Jun 17, 2026
Bumps library/node from 24-alpine to 26-alpine.

---
updated-dependencies:
- dependency-name: library/node
  dependency-version: 26-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot force-pushed the dependabot/docker/library/node-26-alpine branch from 4c1c7cd to a3a3c2a Compare June 17, 2026 20:11
@tibroc tibroc merged commit ad8ec01 into main Jun 18, 2026
2 checks passed
@dependabot dependabot Bot deleted the dependabot/docker/library/node-26-alpine branch June 18, 2026 14:32
tibroc added a commit that referenced this pull request Jul 1, 2026
…ghts read

Addresses code-review findings on the search feature:

- #1 (correctness): user queries were interpolated raw into ilike '%'||q||'%',
  so % and _ acted as SQL wildcards (e.g. "%" returned arbitrary services).
  Escape LIKE metacharacters in SQL (a small CTE) so the term matches literally;
  @q stays raw for trigram similarity. Escaping lives in the query, so both the
  HTTP handler and the read-only catalog MCP are covered with no duplication.
- #2 (UX): server-side search can fail, unlike the old client-side filter. A
  failed /api/search left data undefined and the "Searching…" spinner stuck
  forever. Add an isError branch that shows an error message instead.
- #4 (one use-case layer): the zero-result insights read (days/limit clamp +
  row→DTO mapping + the SearchInsight struct) was duplicated in the HTTP handler
  and the MCP manager. Consolidate into service.ListSearchInsights; both paths
  are now thin wrappers (CLAUDE.md rule 3).

Tests: search integration test now asserts '%' and '_' are matched literally
(return nothing, not everything).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tibroc added a commit that referenced this pull request Jul 1, 2026
…ghts read

Addresses code-review findings on the search feature:

- #1 (correctness): user queries were interpolated raw into ilike '%'||q||'%',
  so % and _ acted as SQL wildcards (e.g. "%" returned arbitrary services).
  Escape LIKE metacharacters in SQL (a small CTE) so the term matches literally;
  @q stays raw for trigram similarity. Escaping lives in the query, so both the
  HTTP handler and the read-only catalog MCP are covered with no duplication.
- #2 (UX): server-side search can fail, unlike the old client-side filter. A
  failed /api/search left data undefined and the "Searching…" spinner stuck
  forever. Add an isError branch that shows an error message instead.
- #4 (one use-case layer): the zero-result insights read (days/limit clamp +
  row→DTO mapping + the SearchInsight struct) was duplicated in the HTTP handler
  and the MCP manager. Consolidate into service.ListSearchInsights; both paths
  are now thin wrappers (CLAUDE.md rule 3).

Tests: search integration test now asserts '%' and '_' are matched literally
(return nothing, not everything).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file docker Pull requests that update docker code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant