Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
192 commits
Select commit Hold shift + click to select a range
1f14542
Tweaking the number of threads to attribute to the different runtimes…
fulmicoton Sep 3, 2025
846468a
Added a metric to track the number of running pipelines per index. (#…
fulmicoton-dd Sep 5, 2025
fabe975
fix the PromQL for cache misses (#5879)
cometkim Sep 5, 2025
abf9a9c
don't ignore indefinitely failing seeds
trinity-1686a Sep 5, 2025
7586c49
fix tests
trinity-1686a Sep 8, 2025
73522b4
Remove `quickwit-lambda` package (#5884)
guilload Sep 9, 2025
7e9de9e
Bump the github-actions group with 2 updates (#5882)
dependabot[bot] Sep 9, 2025
4c6a293
Remove search stream endpoint (#5886)
guilload Sep 9, 2025
0907953
Upgrade Warp (#5870)
Abdul-Andha Sep 9, 2025
aa096fc
Add object storage metrics for gcs (#5889)
Mo3m3n Sep 11, 2025
0e617c5
add !include functionality to integration tests (#5891)
PSeitz-dd Sep 12, 2025
aaf857e
Added different ways for users to set the number of vcpus. (#5890)
fulmicoton Sep 12, 2025
fd83211
fix coverage (#5893)
Abdul-Andha Sep 12, 2025
c0e84e1
Clean up remaining AWS Lambda references
guilload Sep 11, 2025
b51659c
Guarding the number of cpus in a OnceLock to avoid its recomputation …
fulmicoton Sep 15, 2025
eb7febc
Disabling the lifo slot by default, and variable shard load (#5898)
fulmicoton-dd Sep 15, 2025
fe06e6f
update tantivy (#5892)
PSeitz-dd Sep 15, 2025
693031c
Adding an environment to configure the default load per shard. (#5899)
fulmicoton-dd Sep 15, 2025
ed277bc
Simplifying serve function (#5902)
fulmicoton Sep 16, 2025
79238ff
update tantivy (#5904)
PSeitz-dd Sep 17, 2025
5ef5da2
Add a hard limit on field list size (#5843)
rdettai Sep 17, 2025
c8a7280
Fix leaf list fields merging logic (#5908)
guilload Sep 18, 2025
91aba4a
handle fast field search (#5906)
PSeitz-dd Sep 18, 2025
18e1df4
Fix warning
guilload Sep 18, 2025
e89350d
Upgrade to Rust 1.90 (#5909)
guilload Sep 19, 2025
80b0b2c
Add sensitive param to get_from_env_opt (#5910)
Abdul-Andha Sep 20, 2025
73205fc
Remove an unneeded clone to partial hits when fetching docs (#5916)
tontinton Sep 23, 2025
a58b6de
Paul.masurel/add kv migration (#5920)
fulmicoton Sep 26, 2025
4bb6e2a
Fix azure multipart upload data corruption (#5919)
shrijeet Sep 30, 2025
607ffbd
Fix Kinesis source panic on resharding (#5912)
earlbread Sep 30, 2025
d886023
Add `index_metadata_opt` and `update_index` methods to `IndexService`
guilload Oct 3, 2025
2115139
Upgrade SQLx dependency (#5928)
guilload Oct 7, 2025
2ba3e39
update vrl (#5929)
Intuinewin Oct 14, 2025
f911e26
Fix empty intermediate aggregation results merge (#5930)
guilload Oct 15, 2025
9943432
update tantivy (#5935)
PSeitz-dd Oct 17, 2025
a123ba7
Pin UI dependencies to exact versions. See #5937 (#5938)
osyniakov Oct 20, 2025
cee2c15
Pin Docker container images for production build. See #5937 (#5939)
osyniakov Oct 20, 2025
e24881d
Pin remaining Docker container images. See quickwit-oss#5937 (#5943)
osyniakov Oct 21, 2025
464cc62
Update token permissions in workflows. See #5945 (#5946)
osyniakov Oct 21, 2025
506e3fd
Pin GitHubAction dependencies. See quickwit-oss#5937 (#5944)
osyniakov Oct 21, 2025
12e9e0a
feat: Support regex and spaces in user input queries (#5874)
Darkheir Oct 27, 2025
449cb64
Add comment on timestamp fields being potentially ignored
guilload Oct 27, 2025
da8a648
Pin Python packages in workflows. See #5937 (#5949)
osyniakov Oct 28, 2025
48ce148
Bump the github-actions group across 1 directory with 6 updates (#5954)
dependabot[bot] Oct 28, 2025
8b98c33
Bump rust from `d13fd52` to `3914072` (#5951)
dependabot[bot] Oct 28, 2025
62e7923
Bump debian from `7e49091` to `78d2f66` (#5950)
dependabot[bot] Oct 28, 2025
e71f49e
Add cors debug mode (#5955)
Abdul-Andha Oct 28, 2025
7a9b1b2
Delete obsolete workflow (remaining from #5884) (#5956)
osyniakov Oct 29, 2025
03ed8cf
Remove mentions to stream api (#5958)
rdettai-sk Oct 29, 2025
bbc5542
Pin pipenv and it's deps by hash in workflows. See #5937 (#5965)
osyniakov Nov 4, 2025
66dbdfb
Use standard action to install rust. See #5937 (#5967)
osyniakov Nov 4, 2025
eac611d
Bump rust from `3914072` to `b5efaab` (#5963)
dependabot[bot] Nov 4, 2025
45b0126
Add OSSF scorecard. Closes #5968 (#5969)
osyniakov Nov 4, 2025
9dd671f
Explicitly pass required toolchain to action (#5974)
osyniakov Nov 5, 2025
4dc3f71
chore: drop unused cbench workflow (#5975)
osyniakov Nov 5, 2025
f6cb417
Upgrade to Rust 1.91 (#5972)
guilload Nov 6, 2025
c6fa475
Fix poor naming
guilload Nov 13, 2025
d6a1418
Fix clippy warning
guilload Nov 13, 2025
b7556f4
format js files in quickwit-ui (#5981)
Platane Nov 14, 2025
e02a9fd
Support ignore_unavailable query param (#5971)
rdettai-sk Nov 14, 2025
423e7ab
Add `validate_docs` parameter to ingest settings (#5984)
guilload Nov 17, 2025
21497d2
Bump the github-actions group across 1 directory with 8 updates (#5986)
dependabot[bot] Nov 17, 2025
4f038e3
update tantivy (#5990)
PSeitz-dd Nov 20, 2025
5a709f1
Validate doc mapping update (#5988)
guilload Nov 20, 2025
78becf0
Bump debian from `78d2f66` to `936abff` (#5976)
dependabot[bot] Nov 20, 2025
49c8bc2
tantivy version bump (#5992)
fulmicoton Nov 21, 2025
28abce4
Bump debian from `936abff` to `b4aa902` (#5993)
dependabot[bot] Nov 25, 2025
3d04934
Bump the github-actions group with 4 updates (#5994)
dependabot[bot] Nov 25, 2025
cfb543d
Bump tantivy version (#5997)
fulmicoton Nov 26, 2025
3886985
Update quickwit-ui dependencies (#5982)
Platane Nov 27, 2025
2ae514f
Skip cpu if cannot do better (#6001)
fulmicoton Nov 28, 2025
3ae7495
Bump pprof from 0.13.0 to 0.14.0 in /quickwit (#5998)
dependabot[bot] Dec 1, 2025
660388a
[ui] Prevent the search result date to overflow (#5999)
Platane Dec 2, 2025
bfed5c6
feat: Prefix and Wildcard in Elastic DSL (#6000)
Darkheir Dec 3, 2025
0358ca3
Improve control plane logging (#6003)
guilload Dec 3, 2025
b6f853f
feat: Add case_insensitive param to some Elastic DSL queries (#6005)
Darkheir Dec 8, 2025
89b81a5
update tantivy (#6006)
PSeitz Dec 10, 2025
656a904
Improve rebalance shards algorithm (#6018)
guilload Dec 16, 2025
dd209a7
add predicate cache (#6024)
trinity-1686a Dec 16, 2025
2ef2554
fix error when running a scoring query with cache (#6025)
trinity-1686a Dec 17, 2025
63e7edf
Log emitter of advise reset shards request (#6026)
guilload Dec 17, 2025
29422a9
Add config to fail if search targets too many splits (#6009)
rdettai-sk Dec 17, 2025
29734d4
use correct precision level for fastfield-based termquery on datetime…
trinity-1686a Dec 18, 2025
dca9178
bump cargo compatible and some incompatible dependencies (#6028)
congx4 Dec 19, 2025
c4a10f1
bump more incompatible deps (#6029)
congx4 Dec 19, 2025
5f9f8f7
add more deps (#6030)
congx4 Dec 19, 2025
1c3ff5d
fix gcs tests (#6037)
congx4 Dec 23, 2025
f257557
Fix `test_readiness_updates` flaky test (#6053)
guilload Dec 24, 2025
de2537c
This fixes two kafka flaky tests. (#6056)
fulmicoton Dec 26, 2025
0375540
Paul.masurel/flaky kafka test 6049b (#6059)
fulmicoton-dd Dec 29, 2025
f58e608
Fixed confluent local version (#6060)
fulmicoton-dd Dec 29, 2025
1b9dac1
update otl and rand family deps (#6038)
congx4 Dec 29, 2025
3bfdbbb
Add list_index_stats endpoint (#6035)
Abdul-Andha Dec 29, 2025
ba224b9
Fix Kafka readiness test command (#6062)
guilload Dec 29, 2025
ef7e32f
update gcp family deps and others (#6054)
congx4 Dec 29, 2025
3810e44
Fix flaky test `test_delete_shard_on_eof` (#6064)
Abdul-Andha Dec 30, 2025
35ede63
Update more deps (#6057)
congx4 Dec 30, 2025
bbaedaa
Fix `test_gcp_pubsub_source` flaky test (#6068)
guilload Dec 31, 2025
ef61e13
Attempt to fix coverage workflow with GCP PubSub emulator
guilload Dec 31, 2025
d0cc1c5
Introduce cargo machete to remove unused deps (#6067)
congx4 Dec 31, 2025
2b4507d
Jaegerv2 (#6023)
nico34638 Jan 5, 2026
b5fc94c
Failing linter (#6073)
fulmicoton Jan 5, 2026
ddc540a
Fix `test_metastore_get_identity` flaky test (#6055)
guilload Jan 5, 2026
e931711
fix f64 not working properly with concat fields (#6074)
trinity-1686a Jan 6, 2026
94759c3
Wrong range result when datetime was inferred in json type (#6048)
rdettai-sk Jan 6, 2026
51243e4
Bump rsa from 0.9.9 to 0.9.10 in /quickwit (#6076)
dependabot[bot] Jan 6, 2026
bdcdd7d
Improve documentation regarding json fields and concatenated json fie…
rdettai-sk Jan 7, 2026
d7ec89b
Bump the github-actions group across 1 directory with 15 updates (#6069)
dependabot[bot] Jan 7, 2026
2acab20
Updating tantivy and bitpacking. (#6081)
fulmicoton Jan 8, 2026
09e7159
Fix infinite loop OOM bug caused by rebalancing shards from unavailab…
nadav-govari Jan 8, 2026
0e5158c
Chitchat update fixing bug that was triggering many gossip grpc (#6082)
fulmicoton Jan 8, 2026
33f6b65
Bump debian from `b4aa902` to `e899040` (#6020)
dependabot[bot] Jan 9, 2026
98ced0f
Restricted stemming to the multilang feature (#6085)
fulmicoton Jan 9, 2026
1eeacc9
Make regex lenient to start and end anchors (#6089)
rdettai-sk Jan 13, 2026
c8681e6
Bump the github-actions group with 4 updates (#6091)
dependabot[bot] Jan 13, 2026
d1478a5
Move dependabot dependency updates to monthly
guilload Jan 13, 2026
f89a3d7
Bump the pip group across 3 directories with 3 updates (#6094)
dependabot[bot] Jan 13, 2026
b8a7040
Update docker workflow to publish v0.9.0-rc image from rc/v0.9.0 branch
guilload Jan 14, 2026
bfc0f70
Bump taiki-e/install-action in the github-actions group (#6093)
dependabot[bot] Jan 14, 2026
d8fc982
Upgrade to Rust 1.92 (#6071)
guilload Jan 14, 2026
79757e9
Add AZ awareness to node state (#6092)
nadav-govari Jan 14, 2026
e2d9623
Revert lenient start and end anchors #6089 (#6098)
rdettai-sk Jan 15, 2026
13b4d4b
fix: Add support for numbers on TermsQuery (#6097)
Darkheir Jan 15, 2026
7f1c6e8
Bump the npm_and_yarn group across 1 directory with 2 updates (#6095)
dependabot[bot] Jan 16, 2026
6977649
Bumps node from 20 to 24
Platane Jan 16, 2026
3b21dc6
improve in memory cache (#6103)
trinity-1686a Jan 20, 2026
5c487f2
Use gRPC Tonic transport for exporting OTEL spans. (#6105)
fmassot Jan 20, 2026
aba753e
update devcontainer config (#6100)
Platane Jan 20, 2026
977ed84
feat: String as sort in elasticsearch endpoints (#6108)
Darkheir Jan 21, 2026
00a5f3e
Propagate cancellation within leaf search (#6002)
rdettai-sk Jan 23, 2026
4698cef
fix: Set max gRPC message size for OTLP services (#6112)
Totodore Jan 23, 2026
81eb7e1
Bump tantivy to fix fatal bug in intersection (#6114)
fulmicoton Jan 23, 2026
0fee691
Catch empty AZ env vars (#6109)
nadav-govari Jan 23, 2026
6af7a53
UI warning when statistics are wrong (#6113)
rdettai-sk Jan 24, 2026
4ae4f69
Upgrade to Rust 1.93 (#6116)
guilload Jan 24, 2026
49c0421
Bump oneshot from 0.1.11 to 0.1.12 in /quickwit (#6120)
dependabot[bot] Jan 27, 2026
f33ea1d
Bump tantivy to 9b61999 (#6121)
fulmicoton-dd Jan 27, 2026
998b025
Add Claude Code skills for bump-tantivy and simple-pr workflows (#6122)
fulmicoton-dd Jan 27, 2026
b639c22
Node-level shard lookup for persist requests (#6118)
nadav-govari Jan 27, 2026
eca4f76
Re-order CI steps (#6124)
nadav-govari Jan 28, 2026
73877d1
Remove unused features from 6 dependencies to reduce compile times an…
fulmicoton-dd Jan 29, 2026
a1df371
Remove quickwit-opentelemetry dependency from quickwit-search (#6126)
fulmicoton-dd Jan 29, 2026
ed8ee21
Bump bytesize major version; fix backwards incompatible changes (#6127)
nadav-govari Jan 29, 2026
ebeffbe
use the multi-arch version on node image (#6128)
Platane Jan 30, 2026
8d819ee
Attempt to fix build (#6129)
fulmicoton Jan 30, 2026
c48801e
Always refill permits on rate limiter; use governor clock instead of …
nadav-govari Jan 30, 2026
183fcc5
update tantivy (#6136)
PSeitz Feb 3, 2026
b2ca590
Fix flaky test
guilload Feb 4, 2026
71200ae
Bump time from 0.3.44 to 0.3.47 in /quickwit (#6143)
dependabot[bot] Feb 5, 2026
213f7d3
Bump bytes from 1.11.0 to 1.11.1 in /quickwit (#6140)
dependabot[bot] Feb 5, 2026
f9a249a
Add Claude skill for fixing clippy issues
guilload Feb 6, 2026
2b9c293
enforce yarn version in quickwit-ui (#6131)
Platane Feb 10, 2026
e1a23d8
grant permits in SRTF fashion (#6119)
trinity-1686a Feb 10, 2026
45aa24a
silence vite warning about "use client" in material UI (#6139)
Platane Feb 10, 2026
b415918
feat(search): add skip_aggregation_finalization to SearchRequest (#6145)
congx4 Feb 10, 2026
1fff0e3
Add Claude Code configuration for the Quickwit project (#6153)
fulmicoton-dd Feb 12, 2026
54dbed0
Remove unused multilang tokenizer feature (#6154)
fulmicoton-dd Feb 12, 2026
37079b3
feat: Make elastic TermsQuery use TermSetQuery internally (#6151)
Darkheir Feb 18, 2026
8412e6d
Offload leaf search work to AWS Lambda functions (#6157)
fulmicoton-dd Feb 19, 2026
eb05ca3
Bump keccak from 0.1.5 to 0.1.6 in /quickwit (#6164)
dependabot[bot] Feb 20, 2026
8ebd2f9
Fix and optimize CI (#6176)
nadav-govari Feb 27, 2026
1b9d419
Fix rustfmt compatibility with nightly 1.96 (#6187)
Platane Mar 2, 2026
abd8d8b
update UI deps and CI workflow (#6186)
Platane Mar 2, 2026
5c1e60f
lambda improvements (#6171)
trinity-1686a Mar 4, 2026
0915a37
Add ES-compatible endpoints for Trino connector support (#6168)
congx4 Mar 4, 2026
137621a
Fix typo in metrics name in metrics.md (#6141)
ncoiffier-celonis Mar 5, 2026
c0bb6b5
Redact sensitive information in developer API debug output. Closes #6…
osyniakov Mar 5, 2026
b69ddfe
follow aws hints for lambda retries (#6195)
trinity-1686a Mar 9, 2026
e86f4fb
feat(obs): export internal logs with otlp exporter (#6142)
Totodore Mar 9, 2026
92bcc15
Fix e2e tests: navigate to /ui instead of / (#6188)
Platane Mar 10, 2026
1ff255c
feat(es-compat): add index_filter support for field capabilities API …
ruoliu2 Mar 10, 2026
92a526b
Rebalance shards when ingester status changes (#6185)
ncoiffier-celonis Mar 11, 2026
8954dde
Improve cluster sizing doc on control plane/metastore/janitor. Closes…
osyniakov Mar 12, 2026
2bcade6
Merge feature node based routing (#6203)
nadav-govari Mar 16, 2026
06f0ef0
feat(es-compat): support regexp shorthand, expose concatenate fields,…
congx4 Mar 19, 2026
57e63a2
Bump lz4_flex from 0.11.5 to 0.11.6 in /quickwit (#6206)
dependabot[bot] Mar 23, 2026
290d055
reserve proto (#6213)
PSeitz Mar 23, 2026
4864139
Ease deployment from old routing table to new (#6207)
nadav-govari Mar 24, 2026
c34966c
Set `searcher.warmup_single_split_initial_allocation` default to 300 MB
guilload Mar 25, 2026
d94d37a
Fix unit test
guilload Mar 25, 2026
e20f06c
Fix index reincarnation routing bug (#6217)
nadav-govari Mar 25, 2026
0a81c07
Attempt to fix coverage CI workflow
guilload Mar 25, 2026
c0540a2
implement dependabot cooldown (#6227)
trinity-1686a Mar 26, 2026
50ca252
Bump the github-actions group across 1 directory with 13 updates (#6228)
dependabot[bot] Mar 26, 2026
0d1a9a8
Add composite aggregation (#6214)
fulmicoton-dd Mar 27, 2026
9415998
Bump quinn-proto from 0.11.13 to 0.11.14 in /quickwit (#6198)
dependabot[bot] Mar 27, 2026
ec02596
Bump the npm_and_yarn group across 1 directory with 6 updates (#6229)
dependabot[bot] Mar 30, 2026
05c5330
Metrics indexing pipeline (#6231)
mattmkim Mar 30, 2026
e088e70
Merge upstream/main into upgrade/quickwit-upstream-main
schenksj Mar 30, 2026
18bfd93
Point to indextables/tantivy upgrade/tantivy-0.26 branch; fix indexin…
schenksj Mar 30, 2026
7730627
Revert leaf_search_single_split to flat params for external compatibi…
schenksj Mar 30, 2026
7ab746d
Fix CI failures: license header, unused variable, cargo-machete, rustfmt
schenksj Mar 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
83 changes: 83 additions & 0 deletions .claude/skills/bump-tantivy/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
name: bump-tantivy
description: Bump tantivy to the latest commit on main branch, fix compilation issues, and open a PR
disable-model-invocation: true
---

# Bump Tantivy

Follow these steps to bump tantivy to its latest version:

## Step 1: Check that we are on the main branch

Run: `git branch --show-current`

If the current branch is not `main`, abort and ask the user to switch to the main branch first.

## Step 2: Ensure main is up to date

Run: `git pull origin main`

This ensures we're working from the latest code.

## Step 3: Get the latest tantivy SHA

Run: `gh api repos/quickwit-oss/tantivy/commits/main --jq '.sha'`

Extract the first 7 characters as the short SHA.

## Step 4: Update Cargo.toml

Edit `quickwit/Cargo.toml` and update the `rev` field in the tantivy dependency to the new short SHA.

The line looks like:
```toml
tantivy = { git = "https://github.com/quickwit-oss/tantivy/", rev = "XXXXXXX", ... }
```

## Step 5: Run cargo check and fix compilation errors

Run `cargo check` in the `quickwit` directory to verify compilation.

If there are compilation errors:
- If the fix is straightforward (simple API changes, renames, etc.), fix them without asking
- If the fix is complex or unclear, ask the user before proceeding

Repeat until cargo check passes.

## Step 6: Format code

Run `make fmt` from the `quickwit/` directory to format the code.

## Step 7: Update licenses

Run `make update-licenses` from the `quickwit/` directory, then move the generated file:
```
mv quickwit/LICENSE-3rdparty.csv ./LICENSE-3rdparty.csv
```

## Step 8: Create a new branch

Get the git username: `git config user.name | tr ' ' '-' | tr '[:upper:]' '[:lower:]'`

Get today's date: `date +%Y-%m-%d`

Create and checkout a new branch named: `{username}/bump-tantivy-{date}`

Example: `paul/bump-tantivy-2024-03-15`

## Step 9: Commit changes

Stage all modified files and create a commit with message:
```
Bump tantivy to {short-sha}
```

## Step 10: Push and open a PR

Push the branch and open a PR using:
```
gh pr create --title "Bump tantivy to {short-sha}" --body "Updates tantivy dependency to the latest commit on main."
```

Report the PR URL to the user when complete.
26 changes: 26 additions & 0 deletions .claude/skills/fix-clippy/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: fix-clippy
description: Fix all clippy lint warnings in the project
---

# Fix Clippy

Clippy issues are **warnings**, not errors. Never grep for `error` when looking for clippy issues.

## Step 1: Auto-fix

Run `make fix` to automatically fix clippy warnings:

```
make fix
```

## Step 2: Fix remaining warnings manually

Check for remaining warnings that couldn't be auto-fixed:

```
cargo clippy --tests 2>&1 | grep "^warning:" | sort -u
```

For each remaining warning, find the exact location and fix it manually.
23 changes: 23 additions & 0 deletions .claude/skills/fmt/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: fmt
description: Run `make fmt` to check the code format.
---

# Format Check

Run `make fmt` from the `quickwit/` subdirectory to check code formatting:

```
cd /Users/paul.masurel/git/quickwit/quickwit && make fmt
```

This command checks:
1. Rust code formatting
2. License headers
3. Log format policy (no trailing punctuation, no uppercase first character)

If there are log format issues, fix them by:
- Making the first character lowercase
- Removing trailing punctuation (periods, exclamation marks, etc.)

Fix any issues found and re-run until clean.
125 changes: 125 additions & 0 deletions .claude/skills/rationalize-deps/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
---
name: rationalize-deps
description: Analyze Cargo.toml dependencies and attempt to remove unused features to reduce compile times and binary size
---

# Rationalize Dependencies

This skill analyzes Cargo.toml dependencies to identify and remove unused features.

## Overview

Many crates enable features by default that may not be needed. This skill:
1. Identifies dependencies with default features enabled
2. Tests if `default-features = false` works
3. Identifies which specific features are actually needed
4. Verifies compilation after changes

## Step 1: Identify the target

Ask the user which crate(s) to analyze:
- A specific crate name (e.g., "tokio", "serde")
- A specific workspace member (e.g., "quickwit-search")
- "all" to scan the entire workspace

## Step 2: Analyze current dependencies

For the workspace Cargo.toml (`quickwit/Cargo.toml`), list dependencies that:
- Do NOT have `default-features = false`
- Have default features that might be unnecessary

Run: `cargo tree -p <crate> -f "{p} {f}" --edges features` to see what features are actually used.

## Step 3: For each candidate dependency

### 3a: Check the crate's default features

Look up the crate on crates.io or check its Cargo.toml to understand:
- What features are enabled by default
- What each feature provides

Use: `cargo metadata --format-version=1 | jq '.packages[] | select(.name == "<crate>") | .features'`

### 3b: Try disabling default features

Modify the dependency in `quickwit/Cargo.toml`:

From:
```toml
some-crate = { version = "1.0" }
```

To:
```toml
some-crate = { version = "1.0", default-features = false }
```

### 3c: Run cargo check

Run: `cargo check --workspace` (or target specific packages for faster feedback)

If compilation fails:
1. Read the error messages to identify which features are needed
2. Add only the required features explicitly:
```toml
some-crate = { version = "1.0", default-features = false, features = ["needed-feature"] }
```
3. Re-run cargo check

### 3d: Binary search for minimal features

If there are many default features, use binary search:
1. Start with no features
2. If it fails, add half the default features
3. Continue until you find the minimal set

## Step 4: Document findings

For each dependency analyzed, report:
- Original configuration
- New configuration (if changed)
- Features that were removed
- Any features that are required

## Step 5: Verify full build

After all changes, run:
```bash
cargo check --workspace --all-targets
cargo test --workspace --no-run
```

## Common Patterns

### Serde
Often only needs `derive`:
```toml
serde = { version = "1.0", default-features = false, features = ["derive", "std"] }
```

### Tokio
Identify which runtime features are actually used:
```toml
tokio = { version = "1.0", default-features = false, features = ["rt-multi-thread", "macros", "sync"] }
```

### Reqwest
Often doesn't need all TLS backends:
```toml
reqwest = { version = "0.11", default-features = false, features = ["rustls-tls", "json"] }
```

## Rollback

If changes cause issues:
```bash
git checkout quickwit/Cargo.toml
cargo check --workspace
```

## Tips

- Start with large crates that have many default features (tokio, reqwest, hyper)
- Use `cargo bloat --crates` to identify large dependencies
- Check `cargo tree -d` for duplicate dependencies that might indicate feature conflicts
- Some features are needed only for tests - consider using `[dev-dependencies]` features
60 changes: 60 additions & 0 deletions .claude/skills/simple-pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
name: simple-pr
description: Create a simple PR from staged changes with an auto-generated commit message
disable-model-invocation: true
---

# Simple PR

Follow these steps to create a simple PR from staged changes:

## Step 1: Check workspace state

Run: `git status`

Verify that all changes have been staged (no unstaged changes). If there are unstaged changes, abort and ask the user to stage their changes first with `git add`.

Also verify that we are on the `main` branch. If not, abort and ask the user to switch to main first.

## Step 2: Ensure main is up to date

Run: `git pull origin main`

This ensures we're working from the latest code.

## Step 3: Review staged changes

Run: `git diff --cached`

Review the staged changes to understand what the PR will contain.

## Step 4: Generate commit message

Based on the staged changes, generate a concise commit message (1-2 sentences) that describes the "why" rather than the "what".

Display the proposed commit message to the user and ask for confirmation before proceeding.

## Step 5: Create a new branch

Get the git username: `git config user.name | tr ' ' '-' | tr '[:upper:]' '[:lower:]'`

Create a short, descriptive branch name based on the changes (e.g., `fix-typo-in-readme`, `add-retry-logic`, `update-deps`).

Create and checkout the branch: `git checkout -b {username}/{short-descriptive-name}`

## Step 6: Commit changes

Commit with the message from step 3:
```
git commit -m "{commit-message}"
```

## Step 7: Push and open a PR

Push the branch and open a PR:
```
git push -u origin {branch-name}
gh pr create --title "{commit-message-title}" --body "{longer-description-if-needed}"
```

Report the PR URL to the user when complete.
4 changes: 2 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Quickwit",
"image": "mcr.microsoft.com/devcontainers/rust:latest",
"image": "mcr.microsoft.com/devcontainers/rust:bookworm",
"customizations": {
"codespaces": {
"openFiles": [
Expand Down Expand Up @@ -33,7 +33,7 @@
"moby": true
},
"ghcr.io/devcontainers/features/node:1": {
"version": "18"
"version": "24"
},
"ghcr.io/devcontainers/features/aws-cli:1": {},
"ghcr.io/devcontainers-contrib/features/protoc:1": {}
Expand Down
10 changes: 5 additions & 5 deletions .github/actions/cargo-build-macos-binary/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ runs:
shell: bash
- uses: actions/setup-node@v3
with:
node-version: 20
node-version: 24
cache: "yarn"
cache-dependency-path: quickwit/quickwit-ui/yarn.lock
- run: yarn global add node-gyp
Expand All @@ -36,9 +36,9 @@ runs:
working-directory: ./quickwit
- name: Retrieve and export commit date, hash, and tags
run: |
echo "QW_COMMIT_DATE=$(TZ=UTC0 git log -1 --format=%cd --date=format-local:%Y-%m-%dT%H:%M:%SZ)" >> $GITHUB_ENV
echo "QW_COMMIT_HASH=$(git rev-parse HEAD)" >> $GITHUB_ENV
echo "QW_COMMIT_TAGS=$(git tag --points-at HEAD | tr '\n' ',')" >> $GITHUB_ENV
echo "QW_COMMIT_DATE=$(TZ=UTC0 git log -1 --format=%cd --date=format-local:%Y-%m-%dT%H:%M:%SZ)" >> $GITHUB_ENV
echo "QW_COMMIT_HASH=$(git rev-parse HEAD)" >> $GITHUB_ENV
echo "QW_COMMIT_TAGS=$(git tag --points-at HEAD | tr '\n' ',')" >> $GITHUB_ENV
shell: bash
- name: Build binary
run: cargo build --release --features release-macos-feature-vendored-set --target ${{ matrix.target }} --bin quickwit
Expand All @@ -60,7 +60,7 @@ runs:
path: ./${{ env.ASSET_FULL_NAME }}.tar.gz
retention-days: 3
- name: Deploy archive to GitHub release
uses: quickwit-inc/upload-to-github-release@v1
uses: quickwit-inc/upload-to-github-release@9b2c40fba23bf8dea05b7d2eece24cbc95d4a190
env:
GITHUB_TOKEN: ${{ inputs.token }}
with:
Expand Down
Loading
Loading