Story Crater Bot
ff28eac91f
feat(M3.3): Implement mem query CLI command with reranking
...
Adds semantic search with vector recall + reranking + provenance walking:
Changes to crates/mem-cli/src/main.rs:
- Add Query command variant with flags: --project, --levels, --k, --format, --explain
- Add cmd_query handler: embed → recall → rerank → format output
- Support both text and JSON output formats
Changes to crates/mem-cli/src/query_worker.rs:
- Implement reranking in QueryWorker::query()
- Recall 10×k candidates (capped at 50), rerank to top-k
- Fall back to vector similarity if reranker fails
- Handle reranker index mapping correctly (bare array format)
Changes to crates/mem-store/src/pgvector.rs:
- Add pool() method for test access to connection pool
New file: tests/it_query.rs
- 8 integration tests (6 ignored, require live DB + gateway):
a1_known_answer: query returns correct L1 node first
a2_provenance_resolves: every hit's parents exist in DB
a3_default_excludes_l0: default output has no L0
a4_levels_flag: --levels L0 returns evidence
a5_rerank_reorders: pre/post rerank order differs
a6_project_isolation: no cross-project hits
a7_no_project_errors: bad project returns empty
a8_l2_two_hop_provenance: L2→L1→L0 chain resolves
- Seeded test DB fixture with L0/L1/L2 nodes
Pipeline:
embed question → HNSW recall (10×k, cap 50) → rerank → top-k → render
Blocked on: M3.2 (✅ done), M2.1 (✅ done), M2.4 (✅ done)
2026-08-25 12:13:21 -07:00
rock
a4a4053d57
feat: add Obsidian vault projection with Longhorn storage ( #13 )
Build and Push / Test (push) Successful in 3m37s
Build and Push / Build and push image (push) Successful in 2m45s
2026-08-24 01:58:39 +00:00
rock
b10c0b9c53
fix: resolve module imports and rerank test format ( #12 )
Build and Push / Test (push) Successful in 3m35s
Build and Push / Build and push image (push) Successful in 2m39s
2026-08-24 01:45:47 +00:00
rock
e6e39cf6fd
feat(core): implement full memory pipeline ( #11 )
Build and Push / Test (push) Failing after 2m37s
Build and Push / Build and push image (push) Skipped
2026-08-24 01:37:16 +00:00
Story Crater Bot
ae778e3478
Implement M3.5.2: POST /ingest endpoint with idempotent async queue (204 tests)
2026-08-23 16:33:34 -07:00
Story Crater Bot
43239d24ce
Implement M3.6.1: DocCorpusSource with heading-boundary chunking (196 tests)
ci / markdown (push) Waiting to run
2026-08-23 09:42:09 -07:00
Story Crater Bot
ae606a0685
Fix LLM gateway path, update M1.8 gate test to load real chunks (Option B)
ci / markdown (push) Waiting to run
2026-08-23 00:32:27 -07:00
Story Crater Bot
a0ebc1183c
Add K8s app deployment, Dockerfile, and CI workflow (Option A)
ci / markdown (push) Waiting to run
2026-08-23 00:01:30 -07:00
Story Crater Bot
d3be7f6fd4
Deploy Poimen Memory K8s cluster with ArgoCD tracking (M2.2, M3.5-M3.7)
ci / markdown (push) Waiting to run
2026-08-22 23:13:42 -07:00
Story Crater Bot
6e6de869be
feat: complete M0 phase - read-only spine (8/51 tasks)
...
M0.1 - Cargo workspace + crate skeletons (4 tests)
✅ 6-crate workspace with enforced dependency direction
✅ GitHub Actions CI pipeline
M0.2 - Domain types and sha256 identity (6 tests)
✅ Level, Role, Record, Chunk, MemoryNode types
✅ Content-hash identity (sha256) ensuring rebuild idempotence
✅ Newtypes (ProjectId, QueryId, RunId) without Default
M0.3 - RecordSource trait + ChunkPolicy (6 tests)
✅ RecordSource streaming trait
✅ Chunk policy with token budgets and record boundaries
✅ Chunking stream that respects budgets without splitting records
M0.4 - Tokenizer-backed chunk sizing (3 tests + 1 ignored)
✅ Vendored Qwen2 tokenizer with hash verification
✅ QwenTokenCounter for accurate token counting
✅ mem tokens CLI subcommand
M0.5 - pi session adapter (5 tests)
✅ PiSessionSource implementing RecordSource
✅ Project key extraction from cwd field
✅ Content flattening for various shapes
✅ Shared flatten_content helper module
M0.6 - Claude transcript adapter (4 tests)
✅ ClaudeTranscriptSource implementing RecordSource
✅ Identical content flattening as pi source
✅ Cross-source project key agreement
M0.7 - ingest --dry-run (2 tests)
✅ mem ingest --project --dry-run command
✅ Zero network calls guarantee
M0.8 - M0 composition gate (5 tests)
✅ Both sources compose through chunker identically
✅ Sources are swappable via RecordSource trait
✅ All role types properly emitted
✅ Chunk boundaries respected, t values contiguous
Summary:
- 35 integration tests (34 passing, 1 ignored)
- Zero clippy warnings with -D warnings
- All phases compose and verify correctly
- Read-only spine foundation proves extensibility
2026-08-22 23:13:42 -07:00
Story Crater Bot
631cbfa3e9
feat: complete M0.1-M0.4 phases
...
M0.1 - Cargo workspace + crate skeletons
- 6-crate workspace with correct dependency direction
- CI/CD pipeline with GitHub Actions
- Integration tests verifying build and dependency structure
M0.2 - Domain types and sha256 identity
- Level (L0, L1, L2) enum with proper serde formatting
- Role enum (User, Assistant, ToolResult, System)
- Record, Chunk, and MemoryNode domain types
- Content-hash identity system ensuring rebuild idempotence
- Newtypes (ProjectId, QueryId, RunId) with validation
- Round-trip serde tests for all types
M0.3 - RecordSource trait + ChunkPolicy
- RecordSource trait for streaming record sources
- Chunk policy with token budgets and boundary modes
- TokenCounter trait with CharsOverFourCounter stub
- Chunking stream that respects budgets without splitting records
- VecSource for testing
- Integration tests verifying lossless chunking and budget adherence
M0.4 - Tokenizer-backed chunk sizing
- Vendored Qwen2 tokenizer with hash verification
- QwenTokenCounter implementing proper token counting
- Hash guard that fails on modified tokenizer
- mem tokens CLI subcommand for token counting
- Integration tests with known string counts, hash guards, and budget verification
Total: 19 integration tests passing, all phases verified to compose correctly
Workspace builds cleanly with no clippy warnings
2026-08-22 23:13:42 -07:00