Skip to content

Commit 62e3cb2

Browse files
committed
chore: estate-wide metadata and submodule sync (2026-04-20)
1 parent 4d80298 commit 62e3cb2

8 files changed

Lines changed: 62 additions & 51 deletions

File tree

examples/basic_usage.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ fn main() {
4040
let query3 = Query::new("What did we discuss about lifetimes?");
4141
match orch.process(query3) {
4242
Ok(response) => {
43-
println!("Project: {}", orch.current_project().expect("TODO: handle error"));
43+
if let Some(project) = orch.current_project() {
44+
println!("Project: {}", project);
45+
}
4446
println!("Response: {}", response.text);
4547
}
4648
Err(e) => println!("Error: {}", e),

examples/reservoir_demo.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,13 @@ fn main() {
7373

7474
// Example 4: Reset and Restart
7575
println!("\n=== Example 4: Reset Reservoir ===");
76-
println!("State norm before reset: {:.4}", vector_norm(&cm.reservoir_state().expect("TODO: handle error")));
76+
if let Some(state) = cm.reservoir_state() {
77+
println!("State norm before reset: {:.4}", vector_norm(&state));
78+
}
7779
cm.reset_reservoir();
78-
println!("State norm after reset: {:.4}", vector_norm(&cm.reservoir_state().expect("TODO: handle error")));
80+
if let Some(state) = cm.reservoir_state() {
81+
println!("State norm after reset: {:.4}", vector_norm(&state));
82+
}
7983

8084
println!("\n✅ Reservoir demo completed!");
8185
}

src/context.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ mod tests {
247247

248248
let history = cm.project_history("project-1");
249249
assert!(history.is_some());
250-
assert_eq!(history.expect("TODO: handle error").len(), 1);
250+
assert_eq!(history.unwrap().len(), 1);
251251
}
252252

253253
#[test]
@@ -289,8 +289,8 @@ mod tests {
289289
let response = create_test_response("test response");
290290
cm.add_turn(query, response);
291291

292-
let json = cm.to_json().expect("TODO: handle error");
293-
let restored = ContextManager::from_json(&json).expect("TODO: handle error");
292+
let json = cm.to_json().unwrap();
293+
let restored = ContextManager::from_json(&json).unwrap();
294294

295295
assert_eq!(restored.current_project(), cm.current_project());
296296
assert_eq!(restored.conversation_count(), cm.conversation_count());
@@ -333,7 +333,7 @@ mod tests {
333333
// Reservoir state should initially be zeros
334334
let state1 = cm.reservoir_state();
335335
assert!(state1.is_some());
336-
assert_eq!(state1.as_ref().expect("TODO: handle error").len(), 1000);
336+
assert_eq!(state1.as_ref().unwrap().len(), 1000);
337337

338338
// Add a turn - reservoir should update
339339
cm.add_turn(Query::new("Hello world"), create_test_response("Hi"));
@@ -347,7 +347,7 @@ mod tests {
347347
// Snapshot should include reservoir state
348348
let snapshot = cm.snapshot(5);
349349
assert!(snapshot.reservoir_state.is_some());
350-
assert_eq!(snapshot.reservoir_state.expect("TODO: handle error").len(), 1000);
350+
assert_eq!(snapshot.reservoir_state.unwrap().len(), 1000);
351351
}
352352

353353
#[test]
@@ -356,12 +356,12 @@ mod tests {
356356

357357
cm.add_turn(Query::new("test"), create_test_response("response"));
358358

359-
let state = cm.reservoir_state().expect("TODO: handle error");
359+
let state = cm.reservoir_state().unwrap();
360360
assert!(!state.iter().all(|&x| x == 0.0));
361361

362362
cm.reset_reservoir();
363363

364-
let state_after_reset = cm.reservoir_state().expect("TODO: handle error");
364+
let state_after_reset = cm.reservoir_state().unwrap();
365365
assert!(state_after_reset.iter().all(|&x| x == 0.0));
366366
}
367367

src/main.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,9 @@ fn run_interactive() {
9696

9797
loop {
9898
print!("> ");
99-
io::stdout().flush().expect("TODO: handle error");
99+
// Best-effort flush of the prompt; if stdout is closed the next
100+
// read_line() will fail and the loop will exit cleanly.
101+
let _ = io::stdout().flush();
100102

101103
let mut input = String::new();
102104
if io::stdin().read_line(&mut input).is_err() {

src/persistence.rs

Lines changed: 38 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -360,14 +360,17 @@ impl ConversationTurn {
360360
fn from_row(row: &rusqlite::Row) -> Self {
361361
use crate::types::{Query, Response, RoutingDecision, ResponseMetadata};
362362

363-
let query_text: String = row.get(0).expect("TODO: handle error");
364-
let query_priority: u8 = row.get(1).expect("TODO: handle error");
365-
let query_timestamp: u64 = row.get(2).expect("TODO: handle error");
366-
367-
let response_text: String = row.get(3).expect("TODO: handle error");
368-
let response_route_str: String = row.get(4).expect("TODO: handle error");
369-
let response_confidence: f32 = row.get(5).expect("TODO: handle error");
370-
let latency_ms: i64 = row.get(6).expect("TODO: handle error");
363+
// Schema invariant: columns 0-6 are guaranteed present by the
364+
// CREATE TABLE statement that produced this row; absence indicates
365+
// DB corruption, not a recoverable runtime error.
366+
let query_text: String = row.get(0).expect("schema invariant: column 0 (query_text) must exist");
367+
let query_priority: u8 = row.get(1).expect("schema invariant: column 1 (query_priority) must exist");
368+
let query_timestamp: u64 = row.get(2).expect("schema invariant: column 2 (query_timestamp) must exist");
369+
370+
let response_text: String = row.get(3).expect("schema invariant: column 3 (response_text) must exist");
371+
let response_route_str: String = row.get(4).expect("schema invariant: column 4 (response_route_str) must exist");
372+
let response_confidence: f32 = row.get(5).expect("schema invariant: column 5 (response_confidence) must exist");
373+
let latency_ms: i64 = row.get(6).expect("schema invariant: column 6 (latency_ms) must exist");
371374

372375
// Parse routing decision
373376
let route = match response_route_str.as_str() {
@@ -403,7 +406,7 @@ impl ConversationTurn {
403406
fn current_timestamp() -> u64 {
404407
std::time::SystemTime::now()
405408
.duration_since(std::time::UNIX_EPOCH)
406-
.expect("TODO: handle error")
409+
.expect("system clock invariant: time is after UNIX_EPOCH (1970-01-01)")
407410
.as_secs()
408411
}
409412

@@ -429,13 +432,13 @@ mod tests {
429432

430433
#[test]
431434
fn test_persistence_manager_creation() {
432-
let pm = PersistenceManager::new_in_memory().expect("TODO: handle error");
433-
assert_eq!(pm.conversation_count(None).expect("TODO: handle error"), 0);
435+
let pm = PersistenceManager::new_in_memory().unwrap();
436+
assert_eq!(pm.conversation_count(None).unwrap(), 0);
434437
}
435438

436439
#[test]
437440
fn test_save_and_load_turn() {
438-
let pm = PersistenceManager::new_in_memory().expect("TODO: handle error");
441+
let pm = PersistenceManager::new_in_memory().unwrap();
439442

440443
let query = Query::new("What is Rust?");
441444
let response = Response {
@@ -455,17 +458,17 @@ mod tests {
455458
response: response.clone(),
456459
};
457460

458-
pm.save_turn(None, &turn).expect("TODO: handle error");
461+
pm.save_turn(None, &turn).unwrap();
459462

460-
let history = pm.load_history(None, 10).expect("TODO: handle error");
463+
let history = pm.load_history(None, 10).unwrap();
461464
assert_eq!(history.len(), 1);
462465
assert_eq!(history[0].query.text, query.text);
463466
assert_eq!(history[0].response.text, response.text);
464467
}
465468

466469
#[test]
467470
fn test_project_isolation() {
468-
let pm = PersistenceManager::new_in_memory().expect("TODO: handle error");
471+
let pm = PersistenceManager::new_in_memory().unwrap();
469472

470473
let turn1 = ConversationTurn {
471474
query: Query::new("Project A query"),
@@ -497,11 +500,11 @@ mod tests {
497500
},
498501
};
499502

500-
pm.save_turn(Some("project_a"), &turn1).expect("TODO: handle error");
501-
pm.save_turn(Some("project_b"), &turn2).expect("TODO: handle error");
503+
pm.save_turn(Some("project_a"), &turn1).unwrap();
504+
pm.save_turn(Some("project_b"), &turn2).unwrap();
502505

503-
let history_a = pm.load_history(Some("project_a"), 10).expect("TODO: handle error");
504-
let history_b = pm.load_history(Some("project_b"), 10).expect("TODO: handle error");
506+
let history_a = pm.load_history(Some("project_a"), 10).unwrap();
507+
let history_b = pm.load_history(Some("project_b"), 10).unwrap();
505508

506509
assert_eq!(history_a.len(), 1);
507510
assert_eq!(history_b.len(), 1);
@@ -511,45 +514,45 @@ mod tests {
511514

512515
#[test]
513516
fn test_reservoir_persistence() {
514-
let pm = PersistenceManager::new_in_memory().expect("TODO: handle error");
517+
let pm = PersistenceManager::new_in_memory().unwrap();
515518

516519
let mut esn = EchoStateNetwork::new(384, 1000, 100, 0.7, 0.95);
517520

518521
// Update state to make it non-default
519522
let input = vec![0.5; 384];
520523
esn.update(&input);
521524

522-
pm.save_reservoir_state(Some("test_project"), &esn).expect("TODO: handle error");
525+
pm.save_reservoir_state(Some("test_project"), &esn).unwrap();
523526

524-
let loaded = pm.load_reservoir_state(Some("test_project")).expect("TODO: handle error");
527+
let loaded = pm.load_reservoir_state(Some("test_project")).unwrap();
525528
assert!(loaded.is_some());
526529

527530
// Verify we can use the loaded ESN
528-
let mut loaded_esn = loaded.expect("TODO: handle error");
531+
let mut loaded_esn = loaded.unwrap();
529532
let output = loaded_esn.output();
530533
assert_eq!(output.len(), 100);
531534
}
532535

533536
#[test]
534537
fn test_mlp_persistence() {
535-
let pm = PersistenceManager::new_in_memory().expect("TODO: handle error");
538+
let pm = PersistenceManager::new_in_memory().unwrap();
536539

537540
let mlp = MLP::new(384, vec![100, 50], 3);
538-
pm.save_mlp("router", &mlp, Some(0.85)).expect("TODO: handle error");
541+
pm.save_mlp("router", &mlp, Some(0.85)).unwrap();
539542

540-
let loaded = pm.load_mlp("router").expect("TODO: handle error");
543+
let loaded = pm.load_mlp("router").unwrap();
541544
assert!(loaded.is_some());
542545

543546
// Verify we can use the loaded MLP
544-
let loaded_mlp = loaded.expect("TODO: handle error");
547+
let loaded_mlp = loaded.unwrap();
545548
let input = vec![0.5; 384];
546549
let output = loaded_mlp.forward(&input);
547550
assert_eq!(output.len(), 3);
548551
}
549552

550553
#[test]
551554
fn test_clear_history() {
552-
let pm = PersistenceManager::new_in_memory().expect("TODO: handle error");
555+
let pm = PersistenceManager::new_in_memory().unwrap();
553556

554557
for i in 0..10 {
555558
let turn = ConversationTurn {
@@ -566,18 +569,18 @@ mod tests {
566569
},
567570
},
568571
};
569-
pm.save_turn(None, &turn).expect("TODO: handle error");
572+
pm.save_turn(None, &turn).unwrap();
570573
}
571574

572-
assert_eq!(pm.conversation_count(None).expect("TODO: handle error"), 10);
575+
assert_eq!(pm.conversation_count(None).unwrap(), 10);
573576

574-
pm.clear_history(None).expect("TODO: handle error");
575-
assert_eq!(pm.conversation_count(None).expect("TODO: handle error"), 0);
577+
pm.clear_history(None).unwrap();
578+
assert_eq!(pm.conversation_count(None).unwrap(), 0);
576579
}
577580

578581
#[test]
579582
fn test_history_limit() {
580-
let pm = PersistenceManager::new_in_memory().expect("TODO: handle error");
583+
let pm = PersistenceManager::new_in_memory().unwrap();
581584

582585
let base_timestamp = current_timestamp();
583586
for i in 0..100 {
@@ -599,10 +602,10 @@ mod tests {
599602
},
600603
},
601604
};
602-
pm.save_turn(None, &turn).expect("TODO: handle error");
605+
pm.save_turn(None, &turn).unwrap();
603606
}
604607

605-
let history = pm.load_history(None, 10).expect("TODO: handle error");
608+
let history = pm.load_history(None, 10).unwrap();
606609
assert_eq!(history.len(), 10);
607610

608611
// Should get most recent 10 (90-99) in chronological order (oldest first)

src/reservoir.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -379,8 +379,8 @@ mod tests {
379379
let esn = EchoStateNetwork::new(10, 50, 5, 0.7, 0.95);
380380

381381
// Should be serializable
382-
let json = serde_json::to_string(&esn).expect("TODO: handle error");
383-
let deserialized: EchoStateNetwork = serde_json::from_str(&json).expect("TODO: handle error");
382+
let json = serde_json::to_string(&esn).unwrap();
383+
let deserialized: EchoStateNetwork = serde_json::from_str(&json).unwrap();
384384

385385
assert_eq!(esn.reservoir_size, deserialized.reservoir_size);
386386
assert_eq!(esn.state, deserialized.state);

src/snn.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ mod tests {
314314
#[test]
315315
fn test_spiking_network_serialization() {
316316
let snn = SpikingNetwork::new(10, 20, 3);
317-
let json = serde_json::to_string(&snn).expect("TODO: handle error");
318-
let _deserialized: SpikingNetwork = serde_json::from_str(&json).expect("TODO: handle error");
317+
let json = serde_json::to_string(&snn).unwrap();
318+
let _deserialized: SpikingNetwork = serde_json::from_str(&json).unwrap();
319319
}
320320
}

src/training.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,7 @@ mod tests {
521521
let mut esn = EchoStateNetwork::new(10, 100, 5, 0.7, 0.95);
522522

523523
let trainer = ReservoirTrainer::new(0.01);
524-
let mse = trainer.train(&mut esn, &inputs, &targets).expect("TODO: handle error");
524+
let mse = trainer.train(&mut esn, &inputs, &targets).unwrap();
525525

526526
// Should learn with reasonable error
527527
assert!(mse < 1.0);

0 commit comments

Comments
 (0)