1212
1313The file is a standalone end-to-end integration program (not a ` #[test] ` -annotated unit test). It exercises the ` tinyhumansai ` Rust SDK against the staging API in six sequential steps:
1414
15- | Step | Operation | SDK method |
16- | ------ | -----------| ------------|
17- | 1 | Insert a memory document | ` insert_memory ` |
18- | 2 | Poll ingestion job until complete | ` get_ingestion_job ` + ` wait_for_ingestion_job ` |
19- | 3 | List documents filtered by namespace | ` list_documents ` |
20- | 4 | Fetch the specific document | ` get_document ` |
21- | 5 | Semantic query over the namespace | ` query_memory ` |
22- | 6 | Recall all memory context | ` recall_memory ` |
15+ | Step | Operation | SDK method |
16+ | ---- | -- ---------------------------------- | ---------------------------------------------- |
17+ | 1 | Insert a memory document | ` insert_memory ` |
18+ | 2 | Poll ingestion job until complete | ` get_ingestion_job ` + ` wait_for_ingestion_job ` |
19+ | 3 | List documents filtered by namespace | ` list_documents ` |
20+ | 4 | Fetch the specific document | ` get_document ` |
21+ | 5 | Semantic query over the namespace | ` query_memory ` |
22+ | 6 | Recall all memory context | ` recall_memory ` |
2323
2424The document inserted contains sprint velocity data for four teams (Atlas, Beacon, Comet, Delta).
2525
@@ -98,30 +98,30 @@ Initial poll returned state `processing`, so the SDK waited. Job completed succe
9898
9999Key stats from the completed job response:
100100
101- | Metric | Value |
102- | --------| -------|
103- | Chunks new | 1 |
104- | Chunks total | 1 |
105- | Chunks deduplicated | 0 |
106- | Entities extracted | 15 |
107- | Relations extracted | 25 |
108- | Sections | 1 |
109- | Source type | ` doc ` |
110- | Embedding tokens used | 244 |
111- | Cost (USD) | $0.00000488 |
101+ | Metric | Value |
102+ | --------------------- | ----------- |
103+ | Chunks new | 1 |
104+ | Chunks total | 1 |
105+ | Chunks deduplicated | 0 |
106+ | Entities extracted | 15 |
107+ | Relations extracted | 25 |
108+ | Sections | 1 |
109+ | Source type | ` doc ` |
110+ | Embedding tokens used | 244 |
111+ | Cost (USD) | $0.00000488 |
112112
113113Timing breakdown (selected):
114114
115- | Stage | Seconds |
116- | -------| ---------|
117- | Chunking | 0.000826 |
118- | Chunk embedding | 0.2688 |
119- | Chunk storage | 0.2049 |
120- | Entity extraction | 0.8131 |
121- | Entity embedding | 0.0476 |
122- | Graph structure | 0.2427 |
123- | Relationship storage | 0.3800 |
124- | Storage total | 1.2504 |
115+ | Stage | Seconds |
116+ | -------------------- | -------- |
117+ | Chunking | 0.000826 |
118+ | Chunk embedding | 0.2688 |
119+ | Chunk storage | 0.2049 |
120+ | Entity extraction | 0.8131 |
121+ | Entity embedding | 0.0476 |
122+ | Graph structure | 0.2427 |
123+ | Relationship storage | 0.3800 |
124+ | Storage total | 1.2504 |
125125
126126---
127127
@@ -133,11 +133,11 @@ This run uses the updated `list_documents(ListDocumentsParams { namespace, limit
133133
134134** 4 documents returned** (all previous E2E runs in this namespace):
135135
136- | Document ID | Created at |
137- | -------------| ------------|
138- | ` sdk-rust-e2e-doc-single-1774598994566 ` | 2026-03-27T08:09:56 |
139- | ` sdk-rust-e2e-doc-single-1774600415507 ` | 2026-03-27T08:33:37 |
140- | ` sdk-rust-e2e-doc-single-1774604625874 ` | 2026-03-27T09:43:47 |
136+ | Document ID | Created at |
137+ | --------------------------------------- | ------------------------------ |
138+ | ` sdk-rust-e2e-doc-single-1774598994566 ` | 2026-03-27T08:09:56 |
139+ | ` sdk-rust-e2e-doc-single-1774600415507 ` | 2026-03-27T08:33:37 |
140+ | ` sdk-rust-e2e-doc-single-1774604625874 ` | 2026-03-27T09:43:47 |
141141| ` sdk-rust-e2e-doc-single-1774605977640 ` | 2026-03-27T10:06:20 ← this run |
142142
143143All share ` namespace: "sdk-rust-e2e" ` , ` title: "Sprint Dataset - Team Velocity" ` , ` chunk_count: 1 ` .
@@ -200,15 +200,16 @@ The relevant chunk was retrieved correctly. The LLM context message assembled by
200200
201201Top entity mentions extracted from the chunk (by normalized importance):
202202
203- | Entity | Normalized importance | Count |
204- | --------| -----------------------| -------|
205- | THE FEWEST BLOCKERS TEAM | 1.000 | 6 |
206- | 42 STORY POINTS | 0.842 | 14 |
207- | TEAM BEACON | 0.486 | 2 |
208- | TEAM COMET | 0.476 | 2 |
209- | THE HIGHEST VELOCITY TEAM | 0.440 | 4 |
203+ | Entity | Normalized importance | Count |
204+ | ------------------------- | --------------------- | ----- |
205+ | THE FEWEST BLOCKERS TEAM | 1.000 | 6 |
206+ | 42 STORY POINTS | 0.842 | 14 |
207+ | TEAM BEACON | 0.486 | 2 |
208+ | TEAM COMET | 0.476 | 2 |
209+ | THE HIGHEST VELOCITY TEAM | 0.440 | 4 |
210210
211211** Usage:**
212+
212213- Embedding tokens: 20
213214- Cost: $0.0000004
214215- Cached: false
@@ -222,10 +223,7 @@ Top entity mentions extracted from the chunk (by normalized importance):
222223** Request body** (serialized from ` RecallMemoryParams ` with ` #[serde(rename_all = "camelCase")] ` ):
223224
224225``` json
225- {
226- "namespace" : " sdk-rust-e2e" ,
227- "maxChunks" : 5.0
228- }
226+ { "namespace" : " sdk-rust-e2e" , "maxChunks" : 5.0 }
229227```
230228
231229Recall (no query — returns all recent/relevant context) returned the same chunk with a higher score of ` 31.357 ` (recall scoring differs from query scoring).
@@ -241,14 +239,14 @@ The LLM context message was identical to step 5.
241239
242240## Changes since previous run
243241
244- | Area | Previous run | This run |
245- | ------| -------------| ----------|
246- | ` step3_list_documents ` signature | ` list_documents() ` — no args | ` list_documents(ListDocumentsParams { namespace, limit, offset }) ` |
247- | Step 3 result | Empty ` documents: [] ` (no filter) | 4 documents returned (namespace filter working) |
248- | Job ID | ` 4b3cc8e2-... ` | ` a2a1396c-... ` |
249- | Document ID | ` sdk-rust-e2e-doc-single-1774600415507 ` | ` sdk-rust-e2e-doc-single-1774605977640 ` |
250- | Ingestion latency | 1.7791 s | 2.6173 s |
251- | Entity extraction time | 0.0117 s | 0.8131 s |
242+ | Area | Previous run | This run |
243+ | -------------------------------- | --------------------------------------- | ------------------------------------------------------------------ |
244+ | ` step3_list_documents ` signature | ` list_documents() ` — no args | ` list_documents(ListDocumentsParams { namespace, limit, offset }) ` |
245+ | Step 3 result | Empty ` documents: [] ` (no filter) | 4 documents returned (namespace filter working) |
246+ | Job ID | ` 4b3cc8e2-... ` | ` a2a1396c-... ` |
247+ | Document ID | ` sdk-rust-e2e-doc-single-1774600415507 ` | ` sdk-rust-e2e-doc-single-1774605977640 ` |
248+ | Ingestion latency | 1.7791 s | 2.6173 s |
249+ | Entity extraction time | 0.0117 s | 0.8131 s |
252250
253251---
254252
@@ -259,6 +257,7 @@ E2E Rust SDK example completed.
259257```
260258
261259All 6 steps passed. The SDK correctly:
260+
262261- Inserted a document and received a job ID
263262- Polled and waited for the ingestion job to reach ` completed `
264263- Listed documents filtered by namespace (returning all 4 prior E2E inserts)
0 commit comments