You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .planning/PROJECT.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,4 +61,4 @@ The repository already contains substantial v2 implementation under `src/main/ja
61
61
| Keep Java 8 + synchronous API as hard constraints for this milestone | Minimizes adoption friction and migration risk | — Pending |
62
62
63
63
---
64
-
*Last updated: 2026-03-20 — Phase 1 complete (ERGO-01, ERGO-02). Row-based result access and WhereDocument DSL shipped. Next: Phase 2 (Collection API Extensions).*
64
+
*Last updated: 2026-03-25 — Phase 6 complete (DOC-01 through DOC-06). Documentation site with 12 guide pages, MkDocs Material theme, CI deployment, and Javadoc integration shipped. Next: Phase 7 (Working Examples).*
Copy file name to clipboardExpand all lines: .planning/ROADMAP.md
+65-5Lines changed: 65 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,8 +17,11 @@ Decimal phases appear between their surrounding integers in numeric order.
17
17
-[x]**Phase 3: Search API** — Implement the Search endpoint with ranking expressions, field projection, groupBy, and read levels. (completed 2026-03-22)
18
18
-[ ]**Phase 4: Embedding Ecosystem** — Add sparse/multimodal interfaces, reranking, new providers, and embedding registry.
19
19
-[ ]**Phase 5: Cloud Integration Testing** — Build cloud parity test suites for search, schema/index, and array metadata. (gap closure in progress)
20
-
-[]**Phase 6: Documentation Site** — Build a rich documentation site with API surfaces, examples, and feature guides (similar to chroma-go docs).
20
+
-[x]**Phase 6: Documentation Site** — Build a rich documentation site with API surfaces, examples, and feature guides (similar to chroma-go docs). (completed 2026-03-24)
21
21
-[ ]**Phase 7: Working Examples** — Add full working examples for all major features (similar to chroma-go examples/).
22
+
-[ ]**Phase 8: API DX Improvements** — Add Consumer lambda overloads for collection creation and Schema convenience factories (#143, #144).
23
+
-[ ]**Phase 9: Logging Bridges** — Implement SLF4J and JUL bridges for ChromaLogger (#141, #142).
24
+
-[ ]**Phase 10: Documentation Update** — Refresh docs site with DX improvements, logging bridges, and any API changes from Phases 8-9.
22
25
23
26
## Phase Details
24
27
@@ -118,13 +121,23 @@ Phase 4 can execute in parallel with Phases 1-3 (independent).
118
121
119
122
### Phase 6: Documentation Site
120
123
121
-
**Goal:** Build a rich documentation site (similar to amikos-tech/chroma-go) covering all library features, API surfaces, and usage examples.
122
-
**Requirements**: TBD
124
+
**Goal:** Build a rich documentation site (similar to amikos-tech/chroma-go) covering all library features, API surfaces, and usage examples, deployed to java.chromadb.dev via GitHub Pages.
-[x] 06-04-PLAN.md — Examples section stubs, nav expansion, and visual verification checkpoint
128
141
129
142
### Phase 7: Working Examples
130
143
@@ -135,3 +148,50 @@ Plans:
135
148
136
149
Plans:
137
150
-[ ] TBD (run /gsd:plan-phase 7 to break down)
151
+
152
+
### Phase 8: API DX Improvements
153
+
154
+
**Goal:** Reduce builder boilerplate in the most common API paths — collection creation gets Consumer lambda overloads, and Schema gets mid-level factory methods to flatten deep nesting.
155
+
**Requirements**: TBD
156
+
**Depends on:** Phase 6 (docs merged first)
157
+
**Issues:**#143, #144
158
+
**Success Criteria** (what must be TRUE):
159
+
1. User can call `client.getOrCreateCollection("name", opts -> opts.embeddingFunction(ef))` without explicit `.builder()/.build()`.
160
+
2. User can create a common HNSW schema with a single factory method instead of 5 nested builders.
161
+
3. Existing `.builder().build()` API remains unchanged for backwards compatibility.
162
+
4. All new overloads have unit tests.
163
+
**Plans:** 0 plans
164
+
165
+
Plans:
166
+
-[ ] TBD (run /gsd:plan-phase 8 to break down)
167
+
168
+
### Phase 9: Logging Bridges
169
+
170
+
**Goal:** Provide out-of-the-box ChromaLogger implementations for SLF4J (covers Logback) and java.util.logging so users get transport-level logging without writing their own bridge.
171
+
**Requirements**: TBD
172
+
**Depends on:** Nothing (independent)
173
+
**Issues:**#141, #142
174
+
**Success Criteria** (what must be TRUE):
175
+
1.`Slf4jChromaLogger.create()` routes ChromaLogger events to SLF4J with structured fields.
176
+
2.`JulChromaLogger.create()` routes ChromaLogger events to java.util.logging.
177
+
3. SLF4J is an optional/provided dependency (not pulled transitively).
178
+
4. Both bridges have unit tests.
179
+
**Plans:** 0 plans
180
+
181
+
Plans:
182
+
-[ ] TBD (run /gsd:plan-phase 9 to break down)
183
+
184
+
### Phase 10: Documentation Update
185
+
186
+
**Goal:** Refresh the documentation site with new API patterns from Phases 8-9 — Consumer overloads, Schema factories, logging bridge usage — and incorporate any corrections from user feedback.
stopped_at: "Completed 06-04 Task 1; checkpoint:human-verify at Task 2"
7
+
last_updated: "2026-04-01T10:06:39.889Z"
8
8
progress:
9
-
total_phases: 10
10
-
completed_phases: 9
11
-
total_plans: 24
12
-
completed_plans: 24
9
+
total_phases: 14
10
+
completed_phases: 12
11
+
total_plans: 31
12
+
completed_plans: 31
13
13
---
14
14
15
15
# Project State
@@ -19,11 +19,11 @@ progress:
19
19
See: .planning/PROJECT.md (updated 2026-03-17)
20
20
21
21
**Core value:** Java developers can integrate Chroma quickly and safely with a predictable, strongly-typed client that behaves consistently across environments.
@@ -142,6 +146,15 @@ Recent decisions affecting current work:
142
146
-[Phase 05-cloud-integration-testing]: CLOUD-01 search parity tests: GroupBy results via rows() only; ReadLevel WAL uses isolated collection without polling; RRF auto-skipped with Assume.assumeTrue false documenting server limitation; filter matrix 8 sub-scenarios inline; pagination client validation throws IllegalArgumentException before HTTP
143
147
-[Phase 05-cloud-integration-testing]: Embedding projection assertion loosened to accept null or [[null]]: server returns [[null]] for unselected embeddings
144
148
-[Phase 05-cloud-integration-testing]: WAL read-level test uses isolated 3D collection (col) instead of 4D seedCollection to avoid dimension mismatch
149
+
-[Phase 06-documentation-site]: java-examples/index.md placed inside docs_dir (docs/docs/java-examples/) — MkDocs only serves content from docs_dir; placing outside caused strict-mode build failure
150
+
-[Phase 06-documentation-site]: api/ nav entry uses api/index.md placeholder so mkdocs build --strict passes; actual Javadoc deployed by CI into api/ path over this placeholder
151
+
-[Phase 06-documentation-site]: maven-javadoc-plugin upgraded from 2.9.1 to 3.11.2 with doclint=none and source=8 for modern HTML5 Javadoc output and Java 8 compatibility
152
+
-[Phase 06-documentation-site]: Migration page uses pymdownx.tabbed for v1/v2 side-by-side examples — v1 code is the designated exception per D-11; all other pages are v2-only
153
+
-[Phase 06-documentation-site]: ChromaLoggers is package-private; logging docs expose only ChromaLogger interface and ChromaLogger.noop() as the public API surface
154
+
-[Phase 06-documentation-site]: SearchExample uses Search.builder() + collection.search().searches(...) pattern to expose full Knn/Rrf/Search type hierarchy
155
+
-[Phase 06-documentation-site]: All guide pages use --8<-- named section snippet inclusions (no inline copy-pasted code blocks) per D-09
156
+
-[Phase 06-documentation-site]: Examples stubs use 'coming soon' admonition with link to relevant guide page — Phase 7 fills content without touching nav config
157
+
-[Phase 06-documentation-site]: mkdocs.yml Examples nav uses section syntax with java-examples/index.md as section index per navigation.indexes feature
0 commit comments