3.4 KiB
3.4 KiB
Session M3.6.1 — DocCorpusSource Implementation
Completed Tasks
1. M3.6.1: DocCorpusSource + Heading-Boundary Chunking ✅
- Status: COMPLETE with 14 new tests
- Implementation:
- Added
Boundary::Headingvariant toChunkPolicy - Implemented
DocCorpusSourceinmem-ingest - Heading-based document chunking with breadcrumb paths
- Automatic handling of over-long sections with continuation markers
- File filtering (MD/TXT only) and size limits
- SHA256 stability checks
- Added
2. Test Coverage
- 5 unit tests in
doc_corpus.rs— all passing - 9 integration tests in
it_doc_corpus.rs— all passing - Total tests: 196 (up from 182)
3. Test Fixtures ✅
fixtures/refcorpus/small.md— simple 2-section filefixtures/refcorpus/nested.md— nested headings (up to 4 levels)fixtures/refcorpus/large_section.md— 206KB test file for splittingfixtures/refcorpus/skip_me.json— non-markdown (skipped)
4. Key Features
- Headings marked with breadcrumbs prepended to chunk content
- Sections without body content are skipped (only-heading sections)
- Continuation marker for chunks split from large sections
- Dry-run mode:
source.dry_run()prints plan without network calls - Stable
source_uriand file hashing for identity
In Progress
Option A: App Deployment
- Manifests created (deployment, service, kustomization)
- Secrets created
- Blocked: Awaiting Docker image from Forgejo CI build
Deployment Commands (once image is ready)
kubectl apply -k k8s/app/
kubectl port-forward -n poimen svc/poimen-memory 8080:80
curl http://localhost:8080/health
Recent Commits
43239d2— Implement M3.6.1: DocCorpusSource (14 tests)ae606a0— Fix LLM gateway path, update M1.8 testa0ebc11— Add K8s app deployment, Dockerfile, CI workflow
Test Status
✅ 196 tests passing, 0 failing
- 182 tests (previous)
- +14 new tests (M3.6.1)
Next Steps
- Wait for Forgejo CI to build and push Docker image
- Apply
kubectl apply -k k8s/app/when image ready - Run manual tests against deployed app:
curl http://localhost:8080/health curl http://localhost:8080/query -X POST -H "Content-Type: application/yaml" -d @queries/poimen.yaml - Continue with M3.6.2 — Level-R storage
Architecture Notes
- Reference sources (DocCorpusSource) cannot pass to gated loop
- Breadcrumb path attached to every chunk for display/tracking
- Continuation chunks split at paragraph, then hard split at char boundaries
- All sections emitted as single Record per section (RecordSource interface)
✅ ArgoCD Deployment Setup
Application created: poimen-memory-app in ArgoCD
- Status: Synced (awaiting image)
- Watches: https://forgejo.riotpiao.com/rock/poimen-memory.git (main)
- Deploys: k8s/app/ → poimen namespace
- Auto-sync: Enabled (prune + selfHeal)
- Revision:
074f873(latest commit)
Deployment Timeline
- ✅ ArgoCD Application created
- ⏳ Waiting for Forgejo CI to build Docker image
- ⏳ Once image available → pods will become Ready
- ✅ Then: Manual testing via port-forward
Manual Deployment Check
# Monitor app status
kubectl get application -n argocd poimen-memory-app -w
# Watch pod rollout
kubectl get pods -n poimen -l app.kubernetes.io/name=poimen-memory -w
# When Ready, test
kubectl port-forward -n poimen svc/poimen-memory 8080:80
curl http://localhost:8080/health