Add memory-service crate with tonic gRPC boilerplate, config loading (host, port, DuckDB path, embedding endpoint), and stub endpoints with input validation for QueryMemory, WriteMemory, and GetCorrelated. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
Implementation Plan — Issue #27: Scaffold Memory Service Rust project
Metadata
| Field | Value |
|---|---|
| Issue | #27 |
| Title | Scaffold Memory Service Rust project |
| Milestone | Phase 4: Memory Service |
| Labels | type:infrastructure, priority:high, lang:rust, service:memory |
| Status | COMPLETED |
| Language | Rust |
| Related Plans | issue-018.md, issue-022.md |
| Blocked by | #16 (completed) |
Acceptance Criteria
- Cargo workspace member created (
services/memory/) - Dependency on proto-gen crate
- Tonic gRPC server boilerplate compiles
- Configuration loading (address, port, DuckDB path, embedding endpoint)
- Stub endpoints with input validation for all 3 RPCs
Architecture Analysis
Follows the same scaffold pattern as audit (#18) and secrets (#22). Memory service has 3 RPCs: QueryMemory (server-streaming), WriteMemory, GetCorrelated. All are stubbed with input validation, returning Unimplemented until DuckDB and retrieval logic are wired in.
Files to Create/Modify
| File | Action | Purpose |
|---|---|---|
Cargo.toml |
Modify | Add services/memory to workspace |
services/memory/Cargo.toml |
Create | Memory service crate |
services/memory/src/lib.rs |
Create | Module re-exports |
services/memory/src/main.rs |
Create | Server entry point |
services/memory/src/config.rs |
Create | Config with DuckDB path, embedding endpoint |
services/memory/src/service.rs |
Create | MemoryService stub with validation |
Deviation Log
(No deviations)