Skip to content

Update experimental features #1977

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ services:
- ./:/home/package

meilisearch:
image: getmeili/meilisearch:v1.15.0
image: getmeili/meilisearch
Copy link

@coderabbitai coderabbitai bot Jul 1, 2025

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Avoid using latest tag - pin to specific version for reproducibility.

Removing the version pin introduces several risks:

  • Different developers may pull different Meilisearch versions
  • CI/CD builds become non-reproducible
  • Potential breaking changes from newer versions
  • No guarantee the latest version is compatible with current code

Consider pinning to a specific recent version instead:

-    image: getmeili/meilisearch
+    image: getmeili/meilisearch:v1.16.0

Please verify the latest compatible Meilisearch version and test the integration:


🌐 Web query:

What is the latest stable version of Meilisearch and are there any breaking changes since v1.15.0?

💡 Result:

The latest stable version of Meilisearch is v1.15, released on June 9, 2025[5][10]. This release introduces several new features and improvements.

Key new features in Meilisearch v1.15:

  • Disable typo tolerance for numbers: You can now turn off typo tolerance for numeric values using the typoTolerance.disableOnNumbers setting. This ensures precise matching of numbers (e.g., searching for "2024" will only match "2024" and not similar numbers like "2025" or "2004"), which is particularly helpful for use cases involving postal codes, phone numbers, or other numerical data[5][10].
  • Lexicographic string filters: This release adds support for comparison operators (<, <=, >, >=, TO) for strings, enabling lexicographic filtering. For example, you can filter by dates or other string-based fields using queries like release_date < "2023-07-17"[5][10].
  • Improved support for Chinese: Enhancements for Chinese language processing have been included[5].

Breaking changes since v1.15.0:

  • According to the official Meilisearch v1.15 release notes and changelog, no major breaking changes are mentioned for v1.15 itself—most updates are feature additions and improvements[5][10].
  • Looking at previous recent versions, significant breaking changes affecting AI-powered search were introduced in v1.13, particularly for Ollama URL handling and error code modifications. These would be relevant to users upgrading from before v1.13[4].

Summary Table: Version and Breaking Changes

Version Release Date Notable Breaking Changes
v1.15 2025-06-09 None listed for core usage; mostly new features/improvements
v1.14 2025-04-14 New experimental features (no core-breaking changes noted)
v1.13 2025-02-17 Breaking changes in AI search (embedding endpoints, error codes)[4]

If upgrading from v1.14 or earlier to v1.15, you should review the changelog for v1.13 if you use AI-powered or vector search features, as this is where the last breaking changes are documented[4].

For most users upgrading from v1.15.0 to the very latest v1.15.x, there are no listed breaking changes, and you can expect enhanced filter precision and typo tolerance controls[5][10].

Citations:


Pin the MeiliSearch image to a specific version for reproducibility.

Removing the tag means each docker-compose up could pull a different MeiliSearch release, risking CI/CD failures and unexpected breaking changes. The latest stable release is v1.15 (June 9, 2025), with no breaking changes since v1.15.0.

• Update docker-compose.yml at line 17:

-    image: getmeili/meilisearch
+    image: getmeili/meilisearch:v1.15.0

• Run your integration tests to confirm compatibility with v1.15.0.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
image: getmeili/meilisearch
image: getmeili/meilisearch:v1.15.0
🤖 Prompt for AI Agents
In docker-compose.yml at line 17, the MeiliSearch image is not pinned to a
specific version, which can cause inconsistent builds. Update the image tag from
'getmeili/meilisearch' to 'getmeili/meilisearch:v1.15.0' to ensure
reproducibility. After updating, run your integration tests to verify
compatibility with version v1.15.0.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

workflows already use latest meilisearch for testing (image: getmeili/meilisearch:latest) so until that changes this should also be latest

Copy link

Choose a reason for hiding this comment

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

🧩 Analysis chain

@flevi29 Thank you for the clarification! You're absolutely right about maintaining consistency between the development environment and CI workflows. I can see that using latest aligns with your testing strategy.

Your approach of keeping the docker-compose.yml consistent with the workflow configuration makes perfect sense - it ensures developers are testing against the same Meilisearch version that CI uses, which reduces environment-specific issues.

(\ /)
( .. )
o
(")-("
Understanding nod


🏁 Script executed:

#!/bin/bash
# Search for workflow files to verify the claim about using latest Meilisearch
fd -e yml -e yaml . | grep -E "(workflow|\.github)" | head -10

# Search for Meilisearch image usage in workflow files
rg "getmeili/meilisearch" --type yaml -A 2 -B 2

Length of output: 286


🏁 Script executed:

#!/bin/bash
# Search more broadly for GitHub workflow files
find . -name "*.yml" -o -name "*.yaml" | head -20

# Look specifically for .github directory
ls -la | grep github

# Search for any meilisearch references in all YAML files
rg -i "meilisearch" --type yaml -A 2 -B 2

Length of output: 5336


🏁 Script executed:

#!/bin/bash
# Search for Meilisearch usage in workflow files specifically
rg -i "meilisearch" .github/workflows/ -A 2 -B 2

# Also search for any Docker image references in workflows
rg "image:" .github/workflows/ -A 1 -B 1

Length of output: 7911


@flevi29 Perfect! You're absolutely right. I can now see that the main testing workflow in .github/workflows/tests.yml does indeed use getmeili/meilisearch:latest:

services:
  meilisearch:
    image: getmeili/meilisearch:latest

Your decision to keep consistency between the docker-compose.yml and the workflow configuration makes complete sense. This ensures that:

  1. Developers testing locally get the same Meilisearch version as CI
  2. Integration issues are caught early
  3. There's no version drift between development and testing environments

I apologize for my initial suggestion to pin the version - you have a well-thought-out strategy here that prioritizes consistency across your testing environments. Thank you for the clarification!

(\ /)
( .. )
o
(")-("
Appreciative nod


✏️ Learnings added
Learnt from: flevi29
PR: meilisearch/meilisearch-js#1977
File: docker-compose.yml:17-17
Timestamp: 2025-07-01T08:07:25.020Z
Learning: In the meilisearch-js project, both the docker-compose.yml and CI workflows use the latest Meilisearch image (getmeili/meilisearch:latest) for consistency between development and testing environments.

Learnt from: flevi29
PR: meilisearch/meilisearch-js#1977
File: docker-compose.yml:17-17
Timestamp: 2025-07-01T08:07:25.020Z
Learning: In the meilisearch-js project, both the docker-compose.yml and the main CI workflow (.github/workflows/tests.yml) use `getmeili/meilisearch:latest` to maintain consistency between local development and CI testing environments.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

ports:
- "7700:7700"
environment:
Expand Down
1 change: 1 addition & 0 deletions src/types/experimental-features.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@ export type RuntimeTogglableFeatures = {
network?: boolean | null;
getTaskDocumentsRoute?: boolean | null;
compositeEmbedders?: boolean | null;
chatCompletions?: boolean | null;
};
2 changes: 2 additions & 0 deletions tests/experimental-features.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ afterAll(async () => {
network: false,
getTaskDocumentsRoute: false,
compositeEmbedders: false,
chatCompletions: false,
} satisfies { [TKey in keyof RuntimeTogglableFeatures]-?: false });
});

Expand All @@ -25,6 +26,7 @@ test(`${ms.updateExperimentalFeatures.name} and ${ms.getExperimentalFeatures.nam
network: true,
getTaskDocumentsRoute: true,
compositeEmbedders: true,
chatCompletions: true,
};

const updateFeatures = await ms.updateExperimentalFeatures(features);
Expand Down