@@ -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 {
403406fn 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)
0 commit comments