Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
7179041
docs(06): capture phase context
oss-amikos Mar 24, 2026
05a5cca
docs(state): record phase 6 context session
oss-amikos Mar 24, 2026
8295fc8
docs(06): research documentation site phase
oss-amikos Mar 24, 2026
74300a3
docs(06): add research and validation strategy for documentation site
oss-amikos Mar 24, 2026
8a5b726
docs(06): UI design contract for documentation site phase
oss-amikos Mar 24, 2026
5eab6eb
docs(06): fix UI-SPEC typography weight and homepage focal point
oss-amikos Mar 24, 2026
ddf2f4e
docs(06): UI design contract approved
oss-amikos Mar 24, 2026
a34e1fb
docs(06-documentation-site): create phase plan
oss-amikos Mar 24, 2026
b25dba2
feat(06-01): create MkDocs scaffold, config, homepage, and snippet in…
oss-amikos Mar 24, 2026
c54f6a8
feat(06-01): add GitHub Actions docs workflow and upgrade maven-javad…
oss-amikos Mar 24, 2026
5c875e8
docs(06-01): complete documentation site scaffold plan
oss-amikos Mar 24, 2026
d204e40
feat(06-02): add client, auth, and records guide pages with snippet f…
oss-amikos Mar 24, 2026
e0b9be6
feat(06-03): cloud features, schema, and id generators guide pages
oss-amikos Mar 24, 2026
4a0e527
feat(06-03): transport, logging, and migration guide pages
oss-amikos Mar 24, 2026
94c5fc3
feat(06-02): add filtering, search, and embeddings guide pages with s…
oss-amikos Mar 24, 2026
d1e2d06
docs(06-03): complete advanced guide pages plan
oss-amikos Mar 24, 2026
1f622db
docs(06-02): complete core guide pages plan
oss-amikos Mar 24, 2026
b35d6c5
feat(06-04): create examples section stubs and expand nav
oss-amikos Mar 24, 2026
80d4323
docs(06-04): complete examples stubs plan — checkpoint at Task 2
oss-amikos Mar 24, 2026
bb97d86
fix(06): correct pymdownx.snippets base_path to resolve from project …
oss-amikos Mar 25, 2026
fa8f477
docs(06-04): complete visual verification — snippets base_path fixed
oss-amikos Mar 25, 2026
90db5c7
docs(phase-06): complete phase execution
oss-amikos Mar 25, 2026
9375ce0
docs(phase-06): evolve PROJECT.md after phase completion
oss-amikos Mar 25, 2026
577a51b
docs: mark Search/Schema/CMEK as cloud-only, add DX improvement phases
oss-amikos Mar 25, 2026
8891e19
docs: add planning phase stubs and ignore mkdocs build output
oss-amikos Mar 25, 2026
581ef80
Fix docs site examples and deployment
oss-amikos Apr 1, 2026
27a5268
Fix MkDocs config follow-up issues
oss-amikos Apr 1, 2026
0e18595
chore: ignore Claude Code worktree directories
oss-amikos Apr 1, 2026
0f7ed67
docs(06): ship phase 6 — PR #145
oss-amikos Apr 1, 2026
02e8447
docs: update copyright year and clarify snippet base_path
oss-amikos Apr 1, 2026
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
79 changes: 79 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: docs
on:
push:
branches:
- main
workflow_dispatch:

concurrency:
group: docs-deploy
cancel-in-progress: true

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1

- uses: actions/setup-python@v5
with:
python-version: '3.x'
cache: pip
cache-dependency-path: docs/requirements.txt

- name: Install MkDocs dependencies
run: |
python -m venv .venv
. .venv/bin/activate
python -m pip install -r docs/requirements.txt

- name: Build MkDocs site
run: |
. .venv/bin/activate
python -m mkdocs build --config-file docs/mkdocs.yml --site-dir site

- uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'temurin'
cache: maven

- name: Generate Javadoc
run: mvn --no-transfer-progress compile javadoc:javadoc

- name: Merge Javadoc into site
run: |
mkdir -p site/api
cp -R target/site/apidocs/. site/api/

- name: Upload site artifact
uses: actions/upload-artifact@v4
with:
name: docs-site
path: site
if-no-files-found: error

deploy:
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download site artifact
uses: actions/download-artifact@v4
with:
name: docs-site
path: site

- name: Deploy combined docs site
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: site
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,9 @@ fabric.properties
.idea/httpRequests
.idea/caches/build_file_checksums.ser
**.env

### Claude Code ###
.claude/worktrees/

### MkDocs ###
docs/site/
2 changes: 1 addition & 1 deletion .planning/PROJECT.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,4 @@ The repository already contains substantial v2 implementation under `src/main/ja
| Keep Java 8 + synchronous API as hard constraints for this milestone | Minimizes adoption friction and migration risk | — Pending |

---
*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).*
*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).*
70 changes: 65 additions & 5 deletions .planning/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,11 @@ Decimal phases appear between their surrounding integers in numeric order.
- [x] **Phase 3: Search API** — Implement the Search endpoint with ranking expressions, field projection, groupBy, and read levels. (completed 2026-03-22)
- [ ] **Phase 4: Embedding Ecosystem** — Add sparse/multimodal interfaces, reranking, new providers, and embedding registry.
- [ ] **Phase 5: Cloud Integration Testing** — Build cloud parity test suites for search, schema/index, and array metadata. (gap closure in progress)
- [ ] **Phase 6: Documentation Site** — Build a rich documentation site with API surfaces, examples, and feature guides (similar to chroma-go docs).
- [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)
- [ ] **Phase 7: Working Examples** — Add full working examples for all major features (similar to chroma-go examples/).
- [ ] **Phase 8: API DX Improvements** — Add Consumer lambda overloads for collection creation and Schema convenience factories (#143, #144).
- [ ] **Phase 9: Logging Bridges** — Implement SLF4J and JUL bridges for ChromaLogger (#141, #142).
- [ ] **Phase 10: Documentation Update** — Refresh docs site with DX improvements, logging bridges, and any API changes from Phases 8-9.

## Phase Details

Expand Down Expand Up @@ -118,13 +121,23 @@ Phase 4 can execute in parallel with Phases 1-3 (independent).

### Phase 6: Documentation Site

**Goal:** Build a rich documentation site (similar to amikos-tech/chroma-go) covering all library features, API surfaces, and usage examples.
**Requirements**: TBD
**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.
**Requirements**: [DOC-01, DOC-02, DOC-03, DOC-04, DOC-05, DOC-06]
**Depends on:** Phases 1-5 (documents features built in earlier phases)
**Plans:** 0 plans
**Success Criteria** (what must be TRUE):
1. MkDocs Material site builds with `--strict` flag without errors.
2. All 12 guide pages have rich content with snippet-included Java code examples (v2 API only).
3. GitHub Actions workflow deploys MkDocs + Javadoc to GitHub Pages on push to main.
4. Custom domain java.chromadb.dev configured via CNAME file.
5. Examples section stubbed with 7 topic directories for Phase 7.
6. User visually approves the site via local `mkdocs serve`.
**Plans:** 4/4 plans complete

Plans:
- [ ] TBD (run /gsd:plan-phase 6 to break down)
- [x] 06-01-PLAN.md — MkDocs scaffold, config, homepage, CI workflow, Javadoc plugin upgrade
- [x] 06-02-PLAN.md — Core guide pages (client, auth, records, filtering, search, embeddings) with snippet files
- [x] 06-03-PLAN.md — Advanced guide pages (cloud-features, schema, id-generators, transport, logging, migration) with snippet files
- [x] 06-04-PLAN.md — Examples section stubs, nav expansion, and visual verification checkpoint

### Phase 7: Working Examples

Expand All @@ -135,3 +148,50 @@ Plans:

Plans:
- [ ] TBD (run /gsd:plan-phase 7 to break down)

### Phase 8: API DX Improvements

**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.
**Requirements**: TBD
**Depends on:** Phase 6 (docs merged first)
**Issues:** #143, #144
**Success Criteria** (what must be TRUE):
1. User can call `client.getOrCreateCollection("name", opts -> opts.embeddingFunction(ef))` without explicit `.builder()/.build()`.
2. User can create a common HNSW schema with a single factory method instead of 5 nested builders.
3. Existing `.builder().build()` API remains unchanged for backwards compatibility.
4. All new overloads have unit tests.
**Plans:** 0 plans

Plans:
- [ ] TBD (run /gsd:plan-phase 8 to break down)

### Phase 9: Logging Bridges

**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.
**Requirements**: TBD
**Depends on:** Nothing (independent)
**Issues:** #141, #142
**Success Criteria** (what must be TRUE):
1. `Slf4jChromaLogger.create()` routes ChromaLogger events to SLF4J with structured fields.
2. `JulChromaLogger.create()` routes ChromaLogger events to java.util.logging.
3. SLF4J is an optional/provided dependency (not pulled transitively).
4. Both bridges have unit tests.
**Plans:** 0 plans

Plans:
- [ ] TBD (run /gsd:plan-phase 9 to break down)

### Phase 10: Documentation Update

**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.
**Requirements**: TBD
**Depends on:** Phases 8, 9
**Success Criteria** (what must be TRUE):
1. Guide pages updated with Consumer lambda examples alongside existing builder examples.
2. Logging page updated with SLF4J and JUL bridge usage examples.
3. Schema page updated with convenience factory examples.
4. `mkdocs build --strict` passes.
**Plans:** 0 plans

Plans:
- [ ] TBD (run /gsd:plan-phase 10 to break down)
35 changes: 24 additions & 11 deletions .planning/STATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
gsd_state_version: 1.0
milestone: v1.5
milestone_name: milestone
status: "Phase 05 shipped — PR #140"
stopped_at: Completed 05-cloud-integration-testing-05-03-PLAN.md
last_updated: "2026-03-23T13:51:04.103Z"
status: "Phase 06 shipped — PR #145"
stopped_at: "Completed 06-04 Task 1; checkpoint:human-verify at Task 2"
last_updated: "2026-04-01T10:06:39.889Z"
progress:
total_phases: 10
completed_phases: 9
total_plans: 24
completed_plans: 24
total_phases: 14
completed_phases: 12
total_plans: 31
completed_plans: 31
---

# Project State
Expand All @@ -19,11 +19,11 @@ progress:
See: .planning/PROJECT.md (updated 2026-03-17)

**Core value:** Java developers can integrate Chroma quickly and safely with a predictable, strongly-typed client that behaves consistently across environments.
**Current focus:** Phase 05cloud-integration-testing
**Current focus:** Phase 06documentation-site

## Current Position

Phase: 05
Phase: 07
Plan: Not started

## Performance Metrics
Expand Down Expand Up @@ -70,6 +70,10 @@ Plan: Not started
| Phase 03-search-api P03 | 90 | 2 tasks | 7 files |
| Phase 05-cloud-integration-testing P02 | 4 | 2 tasks | 1 files |
| Phase 05 P03 | 5 | 1 tasks | 1 files |
| Phase 06-documentation-site P01 | 3 | 2 tasks | 24 files |
| Phase 06-documentation-site P03 | 7 | 2 tasks | 11 files |
| Phase 06-documentation-site P02 | 4 | 2 tasks | 12 files |
| Phase 06-documentation-site P04 | 5 | 1 tasks | 9 files |

## Accumulated Context

Expand Down Expand Up @@ -142,6 +146,15 @@ Recent decisions affecting current work:
- [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
- [Phase 05-cloud-integration-testing]: Embedding projection assertion loosened to accept null or [[null]]: server returns [[null]] for unselected embeddings
- [Phase 05-cloud-integration-testing]: WAL read-level test uses isolated 3D collection (col) instead of 4D seedCollection to avoid dimension mismatch
- [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
- [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
- [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
- [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
- [Phase 06-documentation-site]: ChromaLoggers is package-private; logging docs expose only ChromaLogger interface and ChromaLogger.noop() as the public API surface
- [Phase 06-documentation-site]: SearchExample uses Search.builder() + collection.search().searches(...) pattern to expose full Knn/Rrf/Search type hierarchy
- [Phase 06-documentation-site]: All guide pages use --8<-- named section snippet inclusions (no inline copy-pasted code blocks) per D-09
- [Phase 06-documentation-site]: Examples stubs use 'coming soon' admonition with link to relevant guide page — Phase 7 fills content without touching nav config
- [Phase 06-documentation-site]: mkdocs.yml Examples nav uses section syntax with java-examples/index.md as section index per navigation.indexes feature

### Roadmap Evolution

Expand All @@ -159,6 +172,6 @@ None.

## Session Continuity

Last session: 2026-03-23T13:27:48.062Z
Stopped at: Completed 05-cloud-integration-testing-05-03-PLAN.md
Last session: 2026-03-24T15:42:20.817Z
Stopped at: Completed 06-04 Task 1; checkpoint:human-verify at Task 2
Resume file: None
Empty file.
Loading
Loading