Skip to content

Commit 4126620

Browse files
authored
test: add cloud integration tests for Search API RRF and GroupBy (#483)
* docs(17): capture phase context * docs(state): record phase 17 context session * docs(17): research phase domain * docs(phase-17): add validation strategy * docs(17): create phase plan * fix(17): revise plan based on checker feedback * test(17-01): add TestCloudClientSearchRRF with dense+sparse smoke and weighted subtests - RRF smoke test verifies dense+sparse KNN fusion returns quantum docs first - Weight/k test verifies different configurations produce different score slices * test(17-01): add TestCloudClientSearchGroupBy with MinK and MaxK subtests - MinK test verifies per-group cap of 2 using sr.RowGroups() iteration - MaxK test verifies per-group cap of 2 with numeric priority metadata * docs(17-01): complete cloud RRF and GroupBy test coverage plan - SUMMARY.md with self-check passed - STATE.md updated with phase 17 plan 01 completion - ROADMAP.md updated with phase 17 progress * test(17): persist human verification items as UAT * docs(phase-17): complete phase execution * docs(phase-17): evolve PROJECT.md after phase completion * test(17): complete UAT - 2 passed, 0 issues * test(17): add edge case and validation subtests for RRF and GroupBy RRF: single rank, zero weight isolation, rejects negative/NaN/zero-k/no-ranks GroupBy: k=1 per-group cap, rejects zero-k/nil-aggregate/no-keys * test: tighten cloud RRF and GroupBy assertions * docs(17): ship phase 17 — PR #483
1 parent a3ea357 commit 4126620

12 files changed

Lines changed: 1735 additions & 14 deletions

File tree

.planning/PROJECT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,4 @@ Go applications can use Chroma and embedding providers through a stable, portabl
7171
| Pivot Phase 7 from vLLM/Nemotron to VoyageAI | vLLM lacks NVOmniEmbedModel support; VoyageAI multimodal validates portability with text/image/video | ✓ Good |
7272

7373
---
74-
*Last updated: 2026-03-30 — Phase 15 (openrouter-embeddings-compatibility) complete: standalone OpenRouter embedding provider with ProviderPreferences, encoding_format, input_type fields; OpenAI WithModelString for proxy endpoints; full test coverage.*
74+
*Last updated: 2026-04-02 — Phase 17 (cloud-rrf-and-groupby-test-coverage) complete: cloud integration tests for Search API RRF (dense+sparse fusion with behavioral assertions) and GroupBy (MinK/MaxK per-group capping via RowGroups); phases 16 (Twelve Labs EF) and 17 completed since last update.*

.planning/ROADMAP.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ This roadmap initializes GSD planning for the current brownfield milestone focus
3030
- [x] **Phase 14: Delete with Limit** - Add delete-with-limit support for upstream limit parameter. (issue #439) [1/2 plans complete] (completed 2026-03-29)
3131
- [x] **Phase 15: OpenRouter Embeddings Compatibility** - Add first-class OpenRouter support via provider preferences and encoding_format. (issue #438) (completed 2026-03-30)
3232
- [x] **Phase 16: Twelve Labs Embedding Function** - Add Twelve Labs multimodal embedding provider. (issue #190) (completed 2026-04-01)
33-
- [ ] **Phase 17: Cloud RRF and GroupBy Test Coverage** - Add cloud integration tests for Search API RRF and GroupBy primitives. (issue #462)
33+
- [x] **Phase 17: Cloud RRF and GroupBy Test Coverage** - Add cloud integration tests for Search API RRF and GroupBy primitives. (issue #462) (completed 2026-04-02)
3434
- [ ] **Phase 18: Embedded Client contentEmbeddingFunction Parity** - Add contentEmbeddingFunction support to embeddedCollection for feature parity with HTTP client. (issue #472)
3535

3636
## Phase Details
@@ -181,7 +181,7 @@ Plans:
181181
| 14. Delete with Limit | 2/2 | Complete | 2026-03-29 |
182182
| 15. OpenRouter Embeddings | 2/2 | Complete | 2026-03-30 |
183183
| 16. Twelve Labs EF | 2/2 | Complete | 2026-04-01 |
184-
| 17. Cloud RRF/GroupBy Tests | 0/0 | Not started | - |
184+
| 17. Cloud RRF/GroupBy Tests | 1/1 | Complete | 2026-04-02 |
185185
| 18. Embedded contentEF Parity | 0/0 | Not started | - |
186186

187187
### Phase 9: Convenience Constructors and Documentation Polish
@@ -318,10 +318,10 @@ Plans:
318318
2. RRF weighted/custom-k test proves request acceptance and ordering changes.
319319
3. GroupBy MinK/MaxK tests assert per-group caps and flattened limits.
320320
4. All tests tagged `cloud` and use existing cloud test infrastructure.
321-
**Plans:** 0 plans
321+
**Plans:** 1/1 plans complete
322322

323323
Plans:
324-
- [ ] TBD (run /gsd:plan-phase 17 to break down)
324+
- [x] TBD (run /gsd:plan-phase 17 to break down) (completed 2026-04-02)
325325

326326
### Phase 18: Embedded Client contentEmbeddingFunction Parity
327327
**Goal:** Add contentEmbeddingFunction support to embeddedCollection so the embedded client has feature parity with the HTTP client for content embedding lifecycle, auto-wiring, and Fork/Close handling.

.planning/STATE.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
gsd_state_version: 1.0
33
milestone: v0.4.1
44
milestone_name: Provider-Neutral Multimodal Foundations
5-
status: "Phase 16 shipped — PR #480"
6-
stopped_at: Completed 16-02-PLAN.md
7-
last_updated: "2026-04-01T12:36:00.417Z"
5+
status: "Phase 17 shipped — PR #483"
6+
stopped_at: Completed 17-01-PLAN.md
7+
last_updated: "2026-04-02T09:42:28.701Z"
88
progress:
99
total_phases: 18
10-
completed_phases: 16
11-
total_plans: 35
12-
completed_plans: 35
10+
completed_phases: 17
11+
total_plans: 36
12+
completed_plans: 36
1313
---
1414

1515
# Project State
@@ -23,7 +23,7 @@ See: .planning/PROJECT.md (updated 2026-03-18)
2323

2424
## Current Position
2525

26-
Phase: 17
26+
Phase: 18
2727
Plan: Not started
2828

2929
## Performance Metrics
@@ -78,6 +78,7 @@ Plan: Not started
7878
| Phase 15 P02 | 2min | 2 tasks | 2 files |
7979
| Phase 16 P01 | 3min | 2 tasks | 3 files |
8080
| Phase 16 P02 | 3min | 2 tasks | 5 files |
81+
| Phase 17 P01 | 3min | 2 tasks | 1 files |
8182

8283
## Accumulated Context
8384

@@ -137,6 +138,7 @@ Recent decisions affecting current work:
137138
- [Phase 16]: One API call per Content item - no batch support (SupportsBatch: false)
138139
- [Phase 16]: Remove unused resolveMIME/extToMIME dead code from content.go to pass lint
139140
- [Phase 16]: Use struct literal construction for hermetic tests matching Gemini/Voyage pattern
141+
- [Phase 17]: Follow existing cloud test patterns for RRF and GroupBy tests - no deviations required
140142

141143
### Roadmap Evolution
142144

@@ -169,6 +171,6 @@ None.
169171

170172
## Session
171173

172-
**Last Date:** 2026-04-01T09:15:21.355Z
173-
**Stopped At:** Completed 16-02-PLAN.md
174+
**Last Date:** 2026-04-02T07:38:41Z
175+
**Stopped At:** Completed 17-01-PLAN.md
174176
**Resume File:** None

0 commit comments

Comments
 (0)