diff --git a/.gitignore b/.gitignore index 055bee45..2233b9d9 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,12 @@ target/ **/*.rs.bk *.pdb +# Stray build artifacts. Two 3.6 MB Linux ELF executables with debug info were +# committed at the repository root before this entry existed; both were produced +# by an ad-hoc build, referenced by nothing, and carried in every clone. +/rust_out +/tmp + # Coverage output /coverage/ *.profraw diff --git a/README.md b/README.md index 6f911dc5..941c18bd 100644 --- a/README.md +++ b/README.md @@ -21,14 +21,30 @@ src/ │ binds as, and the fail-closed external-driver gate └── mandatory/ the three mandatory capability families, composed once over the `Memory` storage trait +core/ tinymemory-core — the substance: ingestion, the summary + tree, chunk storage, entities, the graph, the diff + ledger, goals, tool-memory, and the Composio sync layer. + The largest crate here by a wide margin, and the one a + real host actually depends on. Unlike `api/` it is not + dependency-light: today it links the TinyCortex engine, + a bundled SQLite, and an HTTP stack unconditionally. adapters/ ├── tinycortex/ the TinyCortex engine seen through the contract └── remote/ native HTTP dialects for Supermemory, Mem0, and Cognee +crates/ +└── tinymemory-module/ the TinyBus loadable-module driver. Excluded from the + workspace on purpose — see the note in `Cargo.toml`. vendor/ ├── tinycortex/ the engine, pinned as a submodule +├── tinyagents/ pinned TinyAgents submodule └── tinybus/ pinned TinyBus submodule ``` +Run `git submodule update --init --recursive` after cloning. Nothing in the +workspace builds without it — `core` names `tinyagents` and `tinycortex` by +path through `vendor/`, so an uninitialized checkout fails at manifest +resolution rather than at compile time, which reads as a confusing error. + ## The contract `MemoryProvider` is an object-safe trait with **three mandatory** capability diff --git a/adapters/remote/Cargo.toml b/adapters/remote/Cargo.toml index 870bd706..d78ff7eb 100644 --- a/adapters/remote/Cargo.toml +++ b/adapters/remote/Cargo.toml @@ -3,7 +3,7 @@ name = "tinymemory-remote" publish = false version = "0.1.0" edition = "2021" -rust-version = "1.85" +rust-version = "1.96" license = "MIT" description = "HTTP adapters for self-hosted Supermemory, Mem0, and Cognee" repository = "https://github.com/tinyhumansai/tinymemory" diff --git a/adapters/tinycortex/Cargo.toml b/adapters/tinycortex/Cargo.toml index dc04faf9..01bf0420 100644 --- a/adapters/tinycortex/Cargo.toml +++ b/adapters/tinycortex/Cargo.toml @@ -6,7 +6,7 @@ name = "tinymemory-tinycortex" publish = false version = "0.1.0" edition = "2021" -rust-version = "1.85" +rust-version = "1.96" license = "MIT" description = "TinyCortex engine adapter for the TinyMemory contract" repository = "https://github.com/tinyhumansai/tinymemory" diff --git a/api/Cargo.toml b/api/Cargo.toml index 673c26eb..3d5f32d1 100644 --- a/api/Cargo.toml +++ b/api/Cargo.toml @@ -6,6 +6,7 @@ name = "tinymemory-api" publish = false version = "0.1.1" edition = "2021" +rust-version = "1.96" license = "MIT" repository = "https://github.com/tinyhumansai/tinymemory" description = "Stable public contracts for the TinyMemory memory system" diff --git a/core/Cargo.toml b/core/Cargo.toml index 18fd2f7b..628cafda 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -6,7 +6,7 @@ name = "tinymemory-core" publish = false version = "0.1.0" edition = "2021" -rust-version = "1.85" +rust-version = "1.96" license = "MIT" description = "The engine-neutral memory subsystem: store, summary tree, sync pipelines, ingestion and recall" repository = "https://github.com/tinyhumansai/tinymemory" diff --git a/core/src/store/namespace_store/events.rs b/core/src/store/namespace_store/events.rs index bb3aca44..c03bf076 100644 --- a/core/src/store/namespace_store/events.rs +++ b/core/src/store/namespace_store/events.rs @@ -475,7 +475,7 @@ fn decode_embedding_row(bytes: &[u8], dim: i64) -> anyhow::Result anyhow::Result Vec { /// [`EMBEDDING_DIM`] (after decoding). The latter guards against rows /// written with a mismatched-provider blob silently passing as valid. pub fn unpack_embedding(b: &[u8]) -> Result> { - if b.len() % 4 != 0 { + if !b.len().is_multiple_of(4) { anyhow::bail!( "embedding blob length {} not a multiple of 4 — corrupt row", b.len() diff --git a/rust_out b/rust_out deleted file mode 100755 index 46d11845..00000000 Binary files a/rust_out and /dev/null differ diff --git a/tmp b/tmp deleted file mode 100755 index 9cd4ca77..00000000 Binary files a/tmp and /dev/null differ