Skip to content

feat: refactor the search API to use query params for the filters instead of "natural language"#2872

Merged
CommanderStorm merged 19 commits intoTUM-Dev:mainfrom
CommanderStorm:query-based-search-api
Apr 25, 2026
Merged

feat: refactor the search API to use query params for the filters instead of "natural language"#2872
CommanderStorm merged 19 commits intoTUM-Dev:mainfrom
CommanderStorm:query-based-search-api

Conversation

@CommanderStorm
Copy link
Copy Markdown
Member

No description provided.

Copilot AI review requested due to automatic review settings April 24, 2026 09:49
@CommanderStorm CommanderStorm enabled auto-merge (squash) April 24, 2026 09:49
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

CommanderStorm and others added 3 commits April 24, 2026 13:31
- Add version: 10.14.0 back (needed for pnpm/action-setup to install
  the correct version)
- Remove sha512 hash from tests/package.json packageManager to avoid
  version mismatch with the action's version parameter
- Use run_install + package_json_file to match the working webclient CI

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@CommanderStorm CommanderStorm force-pushed the query-based-search-api branch from ecd6bad to 149aa87 Compare April 24, 2026 11:31
autofix-ci Bot and others added 13 commits April 24, 2026 11:39
pnpm's `manage-package-manager-versions` feature causes it to prepend
its own binary dependencies as a separate YAML document into the
lockfile. This creates a "multiple documents in stream" parse error
when other pnpm instances read the lockfile.

Adding `manage-package-manager-versions=false` to .npmrc in both
webclient/ and tests/ disables this behavior. Also reverts the
corrupted lockfile from the previous autofix commit.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ofix

The `run_install` option in pnpm/action-setup triggers pnpm's
manage-package-manager-versions feature, which prepends self-managed
binary deps as a separate YAML document into the lockfile. The
autofix-ci action then commits this corrupted lockfile.

Switch back to separate `pnpm install` shell steps (with
package_json_file to ensure the correct version) so pnpm doesn't
modify the lockfile, and autofix-ci has nothing spurious to commit.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When pnpm is invoked as a shell command, it resolves to a different
binary than the one installed by pnpm/action-setup, causing lockfile
parse errors. Using run_install ensures the action's own pnpm binary
is used (matching the pattern in webclient-cicd.yml which passes).

The .npmrc with manage-package-manager-versions=false (added in a
previous commit) prevents run_install from writing self-managed deps
into the lockfile.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
pnpm's manage-package-manager-versions feature modifies the lockfile
even with --frozen-lockfile, prepending self-managed binary deps.
Since autofix-ci commits all changes, this corruption gets pushed.

Restore the lockfiles with git checkout before autofix-ci runs so
only intentional changes (updated types, snapshots, etc.) are committed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Playwright webServer has a 120s timeout for docker compose up,
which isn't enough to build from scratch in CI. Pre-build the Docker
images (matching the E2E workflow) so the timeout only covers startup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
`web::Query` uses `serde_urlencoded`, which fails to deserialize
`Vec<String>` from repeated keys (e.g. `?in=garching&in=5304`),
returning 400. Add a `FromRequest` impl for `SearchQueryArgs` that uses
`serde_html_form` to handle repeated keys.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The custom `FromRequest` impl bypasses utoipa-actix-web's auto-detection
that `web::Query<T>` means query params, so utoipa was generating the
spec with `in: path` and `required: true` for every field. Annotate the
struct with `#[into_params(parameter_in = Query)]` so the spec stays
correct.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comment thread Cargo.toml Outdated
@CommanderStorm CommanderStorm merged commit 9dedaa7 into TUM-Dev:main Apr 25, 2026
32 of 36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants