Files
poimen-memory/Cargo.toml
T
Story Crater Bot 33b7150f56 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

51 lines
1.1 KiB
TOML

[package]
name = "poimen-memory"
version = "0.1.0"
edition = "2021"
publish = false
[workspace]
members = [
".",
"crates/mem-core",
"crates/mem-chunk",
"crates/mem-llm",
"crates/mem-ingest",
"crates/mem-store",
"crates/mem-cli",
]
resolver = "2"
[workspace.dependencies]
tokio = { version = "1.35", features = ["full"] }
futures = "0.3"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
anyhow = "1.0"
thiserror = "1.0"
sha2 = "0.10"
clap = { version = "4.4", features = ["derive"] }
reqwest = { version = "0.11", features = ["json"] }
tracing = "0.1"
tracing-subscriber = "0.3"
toml = "0.8"
hex = "0.4"
time = { version = "0.3", features = ["serde", "formatting", "parsing", "macros"] }
tokenizers = "0.13"
once_cell = "1.19"
[dev-dependencies]
toml = { workspace = true }
mem-core = { path = "crates/mem-core" }
mem-chunk = { path = "crates/mem-chunk" }
serde_json = { workspace = true }
time = { workspace = true }
tokio = { workspace = true }
futures = { workspace = true }
[profile.release]
opt-level = 3
lto = true
codegen-units = 1