diff --git a/.gitignore b/.gitignore index aebcdb6..7e40198 100644 --- a/.gitignore +++ b/.gitignore @@ -23,8 +23,7 @@ target # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ -# Session logs directory -logs/ +# G3 session data directory .g3/ # g3 artifacts diff --git a/README.md b/README.md index 3b8e359..b7bdac6 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ G3 includes robust error handling with automatic retry logic: - **Recoverable Error Detection**: Automatically identifies recoverable errors (rate limits, network issues, server errors, timeouts) - **Exponential Backoff with Jitter**: Implements intelligent retry delays to avoid overwhelming services - **Detailed Error Logging**: Captures comprehensive error context including stack traces, request/response data, and session information -- **Error Persistence**: Saves detailed error logs to `logs/errors/` for post-mortem analysis +- **Error Persistence**: Saves detailed error logs to `.g3/errors/` for post-mortem analysis - **Graceful Degradation**: Non-recoverable errors are logged with full context before terminating ### Tool Call Duplicate Detection @@ -316,12 +316,12 @@ G3 can interact with your computer's GUI for automation tasks: ## Session Logs -G3 automatically saves session logs for each interaction in the `logs/` directory. These logs contain: +G3 automatically saves session logs for each interaction in the `.g3/sessions/` directory. These logs contain: - Complete conversation history - Token usage statistics - Timestamps and session status -The `logs/` directory is created automatically on first use and is excluded from version control. +The `.g3/` directory is created automatically on first use and is excluded from version control. ## Documentation Map diff --git a/crates/g3-cli/src/cli_args.rs b/crates/g3-cli/src/cli_args.rs index eb5dce7..96c3c89 100644 --- a/crates/g3-cli/src/cli_args.rs +++ b/crates/g3-cli/src/cli_args.rs @@ -63,7 +63,7 @@ pub struct Cli { #[arg(long, value_name = "MODEL")] pub model: Option, - /// Disable log file creation (no logs/ directory or session logs) + /// Disable session log file creation (no .g3/sessions/ or error logs) #[arg(long)] pub quiet: bool, diff --git a/crates/g3-cli/src/coach_feedback.rs b/crates/g3-cli/src/coach_feedback.rs index 313262d..34a1a6d 100644 --- a/crates/g3-cli/src/coach_feedback.rs +++ b/crates/g3-cli/src/coach_feedback.rs @@ -54,12 +54,7 @@ pub fn extract_from_logs( /// Resolve the log file path, trying new path first then falling back to old. fn resolve_log_path(session_id: &str) -> std::path::PathBuf { - let new_path = g3_core::get_session_file(session_id); - if new_path.exists() { - new_path - } else { - Path::new("logs").join(format!("g3_session_{}.json", session_id)) - } + g3_core::get_session_file(session_id) } /// Extract feedback from a session log file. diff --git a/crates/g3-cli/tests/coach_feedback_extraction_test.rs b/crates/g3-cli/tests/coach_feedback_extraction_test.rs index eb51d2f..87c447e 100644 --- a/crates/g3-cli/tests/coach_feedback_extraction_test.rs +++ b/crates/g3-cli/tests/coach_feedback_extraction_test.rs @@ -4,15 +4,17 @@ use tempfile::TempDir; #[test] fn test_extract_coach_feedback_with_timing_message() { - // Create a temporary directory for logs + // Create a temporary directory for session logs let temp_dir = TempDir::new().unwrap(); - let logs_dir = temp_dir.path().join("logs"); - fs::create_dir(&logs_dir).unwrap(); + let sessions_dir = temp_dir.path().join(".g3").join("sessions"); + fs::create_dir_all(&sessions_dir).unwrap(); // Create a mock session log with the problematic conversation history // where timing message appears after the tool result let session_id = "test_session_123"; - let log_file_path = logs_dir.join(format!("g3_session_{}.json", session_id)); + let session_dir = sessions_dir.join(session_id); + fs::create_dir_all(&session_dir).unwrap(); + let log_file_path = session_dir.join("session.json"); let log_content = json!({ "session_id": session_id, @@ -93,11 +95,13 @@ fn test_extract_coach_feedback_with_timing_message() { fn test_extract_only_final_output_tool_results() { // Test that we only extract tool results from final_output, not from other tools let temp_dir = TempDir::new().unwrap(); - let logs_dir = temp_dir.path().join("logs"); - fs::create_dir(&logs_dir).unwrap(); + let sessions_dir = temp_dir.path().join(".g3").join("sessions"); + fs::create_dir_all(&sessions_dir).unwrap(); let session_id = "test_session_final_output_only"; - let log_file_path = logs_dir.join(format!("g3_session_{}.json", session_id)); + let session_dir = sessions_dir.join(session_id); + fs::create_dir_all(&session_dir).unwrap(); + let log_file_path = session_dir.join("session.json"); let log_content = json!({ "session_id": session_id, @@ -184,14 +188,16 @@ fn test_extract_only_final_output_tool_results() { #[test] fn test_extract_coach_feedback_without_timing_message() { - // Create a temporary directory for logs + // Create a temporary directory for session logs let temp_dir = TempDir::new().unwrap(); - let logs_dir = temp_dir.path().join("logs"); - fs::create_dir(&logs_dir).unwrap(); + let sessions_dir = temp_dir.path().join(".g3").join("sessions"); + fs::create_dir_all(&sessions_dir).unwrap(); // Test the case where there's no timing message (backward compatibility) let session_id = "test_session_456"; - let log_file_path = logs_dir.join(format!("g3_session_{}.json", session_id)); + let session_dir = sessions_dir.join(session_id); + fs::create_dir_all(&session_dir).unwrap(); + let log_file_path = session_dir.join("session.json"); let log_content = json!({ "session_id": session_id, @@ -256,11 +262,13 @@ fn test_extract_coach_feedback_without_timing_message() { fn test_extract_coach_feedback_with_multiple_tool_results() { // Test that we get the LAST tool result when there are multiple let temp_dir = TempDir::new().unwrap(); - let logs_dir = temp_dir.path().join("logs"); - fs::create_dir(&logs_dir).unwrap(); + let sessions_dir = temp_dir.path().join(".g3").join("sessions"); + fs::create_dir_all(&sessions_dir).unwrap(); let session_id = "test_session_789"; - let log_file_path = logs_dir.join(format!("g3_session_{}.json", session_id)); + let session_dir = sessions_dir.join(session_id); + fs::create_dir_all(&session_dir).unwrap(); + let log_file_path = session_dir.join("session.json"); let log_content = json!({ "session_id": session_id, diff --git a/crates/g3-core/logs/errors/error_1768079503_unknown.json b/crates/g3-core/logs/errors/error_1768079503_unknown.json new file mode 100644 index 0000000..7cb01d5 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768079503_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768079503, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768081876_unknown.json b/crates/g3-core/logs/errors/error_1768081876_unknown.json new file mode 100644 index 0000000..1643486 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768081876_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768081876, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768083039_unknown.json b/crates/g3-core/logs/errors/error_1768083039_unknown.json new file mode 100644 index 0000000..0cfbe75 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768083039_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768083039, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768085339_unknown.json b/crates/g3-core/logs/errors/error_1768085339_unknown.json new file mode 100644 index 0000000..e8040cf --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768085339_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768085339, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768088342_unknown.json b/crates/g3-core/logs/errors/error_1768088342_unknown.json new file mode 100644 index 0000000..eb6e066 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768088342_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768088342, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768088453_unknown.json b/crates/g3-core/logs/errors/error_1768088453_unknown.json new file mode 100644 index 0000000..fdb0c4d --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768088453_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768088453, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768128158_unknown.json b/crates/g3-core/logs/errors/error_1768128158_unknown.json new file mode 100644 index 0000000..63ba8d1 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768128158_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768128158, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768128264_unknown.json b/crates/g3-core/logs/errors/error_1768128264_unknown.json new file mode 100644 index 0000000..74b963e --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768128264_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768128264, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768128473_unknown.json b/crates/g3-core/logs/errors/error_1768128473_unknown.json new file mode 100644 index 0000000..41d3f2f --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768128473_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768128473, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768128656_unknown.json b/crates/g3-core/logs/errors/error_1768128656_unknown.json new file mode 100644 index 0000000..8e6bd20 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768128656_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768128656, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768129035_unknown.json b/crates/g3-core/logs/errors/error_1768129035_unknown.json new file mode 100644 index 0000000..909ac7c --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768129035_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768129035, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768129323_unknown.json b/crates/g3-core/logs/errors/error_1768129323_unknown.json new file mode 100644 index 0000000..85411ff --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768129323_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768129323, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768129339_unknown.json b/crates/g3-core/logs/errors/error_1768129339_unknown.json new file mode 100644 index 0000000..0d1ab8a --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768129339_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768129339, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768129356_unknown.json b/crates/g3-core/logs/errors/error_1768129356_unknown.json new file mode 100644 index 0000000..ce1bc58 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768129356_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768129356, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768130842_unknown.json b/crates/g3-core/logs/errors/error_1768130842_unknown.json new file mode 100644 index 0000000..f503934 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768130842_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768130842, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768131516_unknown.json b/crates/g3-core/logs/errors/error_1768131516_unknown.json new file mode 100644 index 0000000..f2fe46d --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768131516_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768131516, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768131530_unknown.json b/crates/g3-core/logs/errors/error_1768131530_unknown.json new file mode 100644 index 0000000..a7a5b84 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768131530_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768131530, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768131543_unknown.json b/crates/g3-core/logs/errors/error_1768131543_unknown.json new file mode 100644 index 0000000..0981b42 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768131543_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768131543, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768131797_unknown.json b/crates/g3-core/logs/errors/error_1768131797_unknown.json new file mode 100644 index 0000000..69a1a44 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768131797_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768131797, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768131982_unknown.json b/crates/g3-core/logs/errors/error_1768131982_unknown.json new file mode 100644 index 0000000..a64b80d --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768131982_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768131982, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768132117_unknown.json b/crates/g3-core/logs/errors/error_1768132117_unknown.json new file mode 100644 index 0000000..8ca2d68 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768132117_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768132117, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768132232_unknown.json b/crates/g3-core/logs/errors/error_1768132232_unknown.json new file mode 100644 index 0000000..f32a80a --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768132232_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768132232, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768132268_unknown.json b/crates/g3-core/logs/errors/error_1768132268_unknown.json new file mode 100644 index 0000000..d6cffad --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768132268_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768132268, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768132404_unknown.json b/crates/g3-core/logs/errors/error_1768132404_unknown.json new file mode 100644 index 0000000..3f60f37 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768132404_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768132404, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768132454_unknown.json b/crates/g3-core/logs/errors/error_1768132454_unknown.json new file mode 100644 index 0000000..88023c1 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768132454_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768132454, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768132540_unknown.json b/crates/g3-core/logs/errors/error_1768132540_unknown.json new file mode 100644 index 0000000..bf2ead1 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768132540_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768132540, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768132553_unknown.json b/crates/g3-core/logs/errors/error_1768132553_unknown.json new file mode 100644 index 0000000..4d4173a --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768132553_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768132553, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768133139_unknown.json b/crates/g3-core/logs/errors/error_1768133139_unknown.json new file mode 100644 index 0000000..01e3432 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768133139_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768133139, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768141273_unknown.json b/crates/g3-core/logs/errors/error_1768141273_unknown.json new file mode 100644 index 0000000..52eb06f --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768141273_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768141273, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768141548_unknown.json b/crates/g3-core/logs/errors/error_1768141548_unknown.json new file mode 100644 index 0000000..b086551 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768141548_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768141548, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768143784_unknown.json b/crates/g3-core/logs/errors/error_1768143784_unknown.json new file mode 100644 index 0000000..9b7d265 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768143784_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768143784, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768143829_unknown.json b/crates/g3-core/logs/errors/error_1768143829_unknown.json new file mode 100644 index 0000000..426ffb9 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768143829_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768143829, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768143855_unknown.json b/crates/g3-core/logs/errors/error_1768143855_unknown.json new file mode 100644 index 0000000..4adeb98 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768143855_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768143855, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768143909_unknown.json b/crates/g3-core/logs/errors/error_1768143909_unknown.json new file mode 100644 index 0000000..0acb8f6 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768143909_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768143909, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768144572_unknown.json b/crates/g3-core/logs/errors/error_1768144572_unknown.json new file mode 100644 index 0000000..4fe3d6a --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768144572_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768144572, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768145313_unknown.json b/crates/g3-core/logs/errors/error_1768145313_unknown.json new file mode 100644 index 0000000..9837aa6 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768145313_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768145313, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768145517_unknown.json b/crates/g3-core/logs/errors/error_1768145517_unknown.json new file mode 100644 index 0000000..4f57e73 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768145517_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768145517, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768146713_unknown.json b/crates/g3-core/logs/errors/error_1768146713_unknown.json new file mode 100644 index 0000000..679be09 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768146713_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768146713, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768173587_unknown.json b/crates/g3-core/logs/errors/error_1768173587_unknown.json new file mode 100644 index 0000000..969037f --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768173587_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768173587, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768175252_unknown.json b/crates/g3-core/logs/errors/error_1768175252_unknown.json new file mode 100644 index 0000000..0d868f0 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768175252_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768175252, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768175509_unknown.json b/crates/g3-core/logs/errors/error_1768175509_unknown.json new file mode 100644 index 0000000..86e780c --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768175509_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768175509, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768184765_unknown.json b/crates/g3-core/logs/errors/error_1768184765_unknown.json new file mode 100644 index 0000000..4a34921 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768184765_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768184765, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768184965_unknown.json b/crates/g3-core/logs/errors/error_1768184965_unknown.json new file mode 100644 index 0000000..2329750 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768184965_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768184965, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768193369_unknown.json b/crates/g3-core/logs/errors/error_1768193369_unknown.json new file mode 100644 index 0000000..47bc9f3 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768193369_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768193369, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768199392_unknown.json b/crates/g3-core/logs/errors/error_1768199392_unknown.json new file mode 100644 index 0000000..9e4f2a9 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768199392_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768199392, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768200370_unknown.json b/crates/g3-core/logs/errors/error_1768200370_unknown.json new file mode 100644 index 0000000..6b0b2d4 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768200370_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768200370, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/logs/errors/error_1768209302_unknown.json b/crates/g3-core/logs/errors/error_1768209302_unknown.json new file mode 100644 index 0000000..29e5dc9 --- /dev/null +++ b/crates/g3-core/logs/errors/error_1768209302_unknown.json @@ -0,0 +1,13 @@ +{ + "operation": "test_operation", + "provider": "test_provider", + "model": "test_model", + "last_prompt": "test prompt", + "raw_request": null, + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./src/error_handling.rs:72:27\n 2: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:87:23\n 3: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 4: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 5: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:54\n 6: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 7: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 8: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25\n 9: tokio::runtime::scheduler::current_thread::Context::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19\n 10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:36\n 11: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68\n 12: tokio::runtime::context::scoped::Scoped::set\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9\n 13: tokio::runtime::context::set_scheduler::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:26\n 14: std::thread::local::LocalKey::try_with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:315:12\n 15: std::thread::local::LocalKey::with\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/thread/local.rs:279:15\n 16: tokio::runtime::context::set_scheduler\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:9\n 17: tokio::runtime::scheduler::current_thread::CoreGuard::enter\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27\n 18: tokio::runtime::scheduler::current_thread::CoreGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:19\n 19: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:28\n 20: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9\n 22: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:47\n 23: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:13\n 24: g3_core::error_handling_test::tests::test_retry_exhaustion\n at ./src/error_handling_test.rs:114:9\n 25: g3_core::error_handling_test::tests::test_retry_exhaustion::{{closure}}\n at ./src/error_handling_test.rs:84:37\n 26: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 27: test::__rust_begin_short_backtrace\n 28: test::run_test_in_process\n 29: std::sys::backtrace::__rust_begin_short_backtrace\n 30: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 31: std::sys::pal::unix::thread::Thread::new::thread_start\n 32: __pthread_cond_wait\n", + "timestamp": 1768209302, + "context_tokens": 100, + "session_id": null, + "quiet": false +} \ No newline at end of file diff --git a/crates/g3-core/src/error_handling.rs b/crates/g3-core/src/error_handling.rs index 8513f87..45b9152 100644 --- a/crates/g3-core/src/error_handling.rs +++ b/crates/g3-core/src/error_handling.rs @@ -129,8 +129,7 @@ impl ErrorContext { return; } - let base_logs_dir = crate::logs_dir(); - let logs_dir = base_logs_dir.join("errors"); + let logs_dir = crate::paths::get_errors_dir(); if !logs_dir.exists() { if let Err(e) = std::fs::create_dir_all(&logs_dir) { error!("Failed to create error logs directory: {}", e); diff --git a/crates/g3-core/src/feedback_extraction.rs b/crates/g3-core/src/feedback_extraction.rs index 36d502c..c7822b7 100644 --- a/crates/g3-core/src/feedback_extraction.rs +++ b/crates/g3-core/src/feedback_extraction.rs @@ -8,10 +8,9 @@ //! //! Used by both autonomous mode (g3-cli) and planning mode (g3-planner). -use crate::{logs_dir, Agent, TaskResult}; +use crate::{Agent, TaskResult}; use crate::ui_writer::UiWriter; use serde_json::Value; -use std::path::PathBuf; use tracing::{debug, warn}; /// Result of feedback extraction with source information @@ -60,8 +59,6 @@ impl ExtractedFeedback { pub struct FeedbackExtractionConfig { /// Whether to print debug information pub verbose: bool, - /// Custom logs directory (overrides default) - pub logs_dir: Option, /// Default feedback message if extraction fails pub default_feedback: String, } @@ -70,7 +67,6 @@ impl Default for FeedbackExtractionConfig { fn default() -> Self { Self { verbose: false, - logs_dir: None, default_feedback: "The implementation needs review. Please ensure all requirements are met and the code compiles without errors.".to_string(), } } @@ -149,17 +145,10 @@ fn try_extract_last_assistant_message( session_id: &str, config: &FeedbackExtractionConfig, ) -> Option { - // Try new .g3/sessions//session.json path first - let log_file_path = crate::get_session_file(session_id); + let _ = config; // config no longer used but kept for API compatibility - // Fall back to old logs/ path if new path doesn't exist - let log_file_path = if log_file_path.exists() { - log_file_path - } else { - let logs_path = config.logs_dir.clone().unwrap_or_else(logs_dir); - logs_path.join(format!("g3_session_{}.json", session_id)) - }; - + // Use .g3/sessions//session.json path + let log_file_path = crate::get_session_file(session_id); if !log_file_path.exists() { debug!("Session log file not found: {:?}", log_file_path); return None; @@ -214,17 +203,10 @@ fn try_extract_from_session_log( session_id: &str, config: &FeedbackExtractionConfig, ) -> Option { - // Try new .g3/sessions//session.json path first - let log_file_path = crate::get_session_file(session_id); + let _ = config; // config no longer used but kept for API compatibility - // Fall back to old logs/ path if new path doesn't exist - let log_file_path = if log_file_path.exists() { - log_file_path - } else { - let logs_path = config.logs_dir.clone().unwrap_or_else(logs_dir); - logs_path.join(format!("g3_session_{}.json", session_id)) - }; - + // Use .g3/sessions//session.json path + let log_file_path = crate::get_session_file(session_id); if !log_file_path.exists() { debug!("Session log file not found: {:?}", log_file_path); return None; @@ -358,17 +340,10 @@ fn try_extract_from_conversation_history( session_id: &str, config: &FeedbackExtractionConfig, ) -> Option { - // Try new .g3/sessions//session.json path first - let log_file_path = crate::get_session_file(session_id); + let _ = config; // config no longer used but kept for API compatibility - // Fall back to old logs/ path if new path doesn't exist - let log_file_path = if log_file_path.exists() { - log_file_path - } else { - let logs_path = config.logs_dir.clone().unwrap_or_else(logs_dir); - logs_path.join(format!("g3_session_{}.json", session_id)) - }; - + // Use .g3/sessions//session.json path + let log_file_path = crate::get_session_file(session_id); if !log_file_path.exists() { return None; } @@ -652,7 +627,6 @@ mod tests { fn test_feedback_extraction_config_default() { let config = FeedbackExtractionConfig::default(); assert!(!config.verbose); - assert!(config.logs_dir.is_none()); assert!(config.default_feedback.contains("review")); } } diff --git a/crates/g3-core/src/lib.rs b/crates/g3-core/src/lib.rs index 306fce3..c9c94a9 100644 --- a/crates/g3-core/src/lib.rs +++ b/crates/g3-core/src/lib.rs @@ -53,10 +53,11 @@ use std::time::{Duration, Instant}; use tokio_util::sync::CancellationToken; use tracing::{debug, error, warn}; -// Re-export path utilities for backward compatibility +// Re-export path utilities pub use paths::{ - G3_WORKSPACE_PATH_ENV, ensure_session_dir, get_context_summary_file, get_g3_dir, get_logs_dir, - get_session_file, get_session_logs_dir, get_session_todo_path, get_thinned_dir, logs_dir, + G3_WORKSPACE_PATH_ENV, ensure_session_dir, get_context_summary_file, get_g3_dir, + get_session_file, get_session_logs_dir, get_session_todo_path, get_thinned_dir, + get_errors_dir, get_background_processes_dir, get_discovery_dir, }; use paths::get_todo_path; @@ -291,7 +292,7 @@ impl Agent { working_dir: None, background_process_manager: std::sync::Arc::new( background_process::BackgroundProcessManager::new( - paths::get_logs_dir().join("background_processes") + paths::get_background_processes_dir() )), pending_images: Vec::new(), is_agent_mode: false, diff --git a/crates/g3-core/src/paths.rs b/crates/g3-core/src/paths.rs index 7708db0..66d7d15 100644 --- a/crates/g3-core/src/paths.rs +++ b/crates/g3-core/src/paths.rs @@ -1,8 +1,8 @@ //! Path utilities for G3 session and workspace management. //! //! This module centralizes all path-related logic for: -//! - TODO file location -//! - Logs directory +//! - TODO file location +//! - Error logs directory //! - Session directories and files //! - Thinned content storage @@ -33,22 +33,29 @@ pub fn get_session_todo_path(session_id: &str) -> PathBuf { get_session_logs_dir(session_id).join("todo.g3.md") } -/// Get the path to the logs directory. +/// Get the path to the errors directory. /// -/// Checks for G3_WORKSPACE_PATH environment variable first (used by planning mode), -/// then falls back to "logs" in the current directory. -pub fn get_logs_dir() -> PathBuf { - if let Ok(workspace_path) = std::env::var(G3_WORKSPACE_PATH_ENV) { - PathBuf::from(workspace_path).join("logs") - } else { - std::env::current_dir().unwrap_or_default().join("logs") - } +/// Returns `.g3/errors/` in the workspace or current directory. +pub fn get_errors_dir() -> PathBuf { + get_g3_dir().join("errors") } -/// Public accessor for the logs directory path (for use by submodules). -/// Alias for `get_logs_dir()` for backward compatibility. -pub fn logs_dir() -> PathBuf { - get_logs_dir() +/// Get the path to the background processes directory. +/// +/// Returns `.g3/background_processes/` in the workspace or current directory. +pub fn get_background_processes_dir() -> PathBuf { + get_g3_dir().join("background_processes") +} + +/// Get the path to the discovery logs directory (for planner mode). +/// +/// Returns `.g3/discovery/` in the workspace or current directory. +pub fn get_discovery_dir() -> PathBuf { + if let Ok(workspace_path) = std::env::var(G3_WORKSPACE_PATH_ENV) { + PathBuf::from(workspace_path).join(".g3").join("discovery") + } else { + get_g3_dir().join("discovery") + } } /// Get the base .g3 directory path. diff --git a/crates/g3-core/src/project.rs b/crates/g3-core/src/project.rs index 17e933c..8a66f65 100644 --- a/crates/g3-core/src/project.rs +++ b/crates/g3-core/src/project.rs @@ -127,18 +127,4 @@ impl Project { std::env::set_current_dir(&self.workspace_dir)?; Ok(()) } - - /// Get the logs directory for the project - pub fn logs_dir(&self) -> PathBuf { - self.workspace_dir.join("logs") - } - - /// Ensure the logs directory exists - pub fn ensure_logs_dir(&self) -> Result<()> { - let logs_dir = self.logs_dir(); - if !logs_dir.exists() { - std::fs::create_dir_all(&logs_dir)?; - } - Ok(()) - } } diff --git a/crates/g3-core/src/session.rs b/crates/g3-core/src/session.rs index 288b346..4462de2 100644 --- a/crates/g3-core/src/session.rs +++ b/crates/g3-core/src/session.rs @@ -5,7 +5,7 @@ //! operations from the Agent, keeping the Agent as a thin orchestrator. use crate::context_window::ContextWindow; -use crate::paths::{ensure_session_dir, get_context_summary_file, get_g3_dir, get_logs_dir, get_session_file}; +use crate::paths::{ensure_session_dir, get_context_summary_file, get_g3_dir, get_session_file}; use g3_providers::MessageRole; use std::collections::hash_map::DefaultHasher; use std::hash::{Hash, Hasher}; @@ -90,7 +90,7 @@ pub fn generate_session_id(description: &str, agent_name: Option<&str>) -> Strin /// Save the context window to a session file. /// /// If session_id is provided, saves to `.g3/sessions//session.json`. -/// Otherwise, falls back to `logs/g3_context_.json`. +/// Otherwise, saves to `.g3/sessions/anonymous_/session.json`. pub fn save_context_window( session_id: Option<&str>, context_window: &ContextWindow, @@ -110,13 +110,13 @@ pub fn save_context_window( } get_session_file(id) } else { - // Fallback to old logs/ directory for sessions without ID - let logs_dir = get_logs_dir(); - if let Err(e) = std::fs::create_dir_all(&logs_dir) { - error!("Failed to create logs directory: {}", e); + // Create anonymous session for sessions without ID + let anonymous_id = format!("anonymous_{}", timestamp); + if let Err(e) = ensure_session_dir(&anonymous_id) { + error!("Failed to create anonymous session directory: {}", e); return; } - logs_dir.join(format!("g3_context_{}.json", timestamp)) + get_session_file(&anonymous_id) }; let context_data = serde_json::json!({ @@ -252,8 +252,8 @@ pub fn log_error_to_session( .unwrap_or_default() .as_secs(); - let logs_dir = get_logs_dir(); - let filename = logs_dir.join(format!("g3_session_{}.json", session_id)); + // Use the new .g3/sessions//session.json path + let filename = get_session_file(session_id); // Read existing session log let mut session_data: serde_json::Value = if filename.exists() { diff --git a/crates/g3-core/tests/background_process_demo_test.rs b/crates/g3-core/tests/background_process_demo_test.rs index 319d82b..23dd3d3 100644 --- a/crates/g3-core/tests/background_process_demo_test.rs +++ b/crates/g3-core/tests/background_process_demo_test.rs @@ -29,7 +29,7 @@ echo "Done!" fs::set_permissions(&script_path, fs::Permissions::from_mode(0o755)).unwrap(); } - let log_dir = test_dir.join("logs"); + let log_dir = test_dir.join(".g3").join("background_processes"); let manager = BackgroundProcessManager::new(log_dir); println!("\n=== Background Process Demo ==="); diff --git a/crates/g3-core/tests/integration_blackbox_test.rs b/crates/g3-core/tests/integration_blackbox_test.rs index 036d17a..b6656d1 100644 --- a/crates/g3-core/tests/integration_blackbox_test.rs +++ b/crates/g3-core/tests/integration_blackbox_test.rs @@ -53,7 +53,7 @@ done fs::set_permissions(&script_path, fs::Permissions::from_mode(0o755)).unwrap(); } - let log_dir = test_dir.join("logs"); + let log_dir = test_dir.join(".g3").join("background_processes"); let manager = BackgroundProcessManager::new(log_dir); // Start the process @@ -116,7 +116,7 @@ sleep 30 fs::set_permissions(&script_path, fs::Permissions::from_mode(0o755)).unwrap(); } - let log_dir = test_dir.join("logs"); + let log_dir = test_dir.join(".g3").join("background_processes"); let manager = BackgroundProcessManager::new(log_dir); // Start a process @@ -151,7 +151,7 @@ sleep 30 let _ = fs::remove_dir_all(&test_dir); fs::create_dir_all(&test_dir).unwrap(); - let log_dir = test_dir.join("logs"); + let log_dir = test_dir.join(".g3").join("background_processes"); let manager = BackgroundProcessManager::new(log_dir); // Getting a process that doesn't exist should return None diff --git a/crates/g3-core/tests/test_session_continuation.rs b/crates/g3-core/tests/test_session_continuation.rs index 5479f89..efcbfc1 100644 --- a/crates/g3-core/tests/test_session_continuation.rs +++ b/crates/g3-core/tests/test_session_continuation.rs @@ -91,7 +91,7 @@ fn test_save_and_load_continuation() { "save_load_test".to_string(), None, Some("Test summary content".to_string()), - "/logs/g3_session_save_load_test.json".to_string(), + "/.g3/sessions/save_load_test/session.json".to_string(), 35.5, Some("- [ ] Pending task".to_string()), temp_dir.path().to_string_lossy().to_string(), @@ -321,9 +321,9 @@ fn test_has_valid_continuation_with_existing_session_log() { let (temp_dir, original_dir) = setup_test_env(); // Create a fake session log file - let logs_dir = temp_dir.path().join("logs"); - fs::create_dir_all(&logs_dir).expect("Failed to create logs dir"); - let session_log_path = logs_dir.join("g3_session_valid_test.json"); + let session_dir = temp_dir.path().join(".g3").join("sessions").join("valid_test"); + fs::create_dir_all(&session_dir).expect("Failed to create session dir"); + let session_log_path = session_dir.join("session.json"); fs::write(&session_log_path, "{}").expect("Failed to write session log"); // Create a continuation pointing to the existing session log diff --git a/crates/g3-ensembles/src/flock.rs b/crates/g3-ensembles/src/flock.rs index bbee8ae..cd52492 100644 --- a/crates/g3-ensembles/src/flock.rs +++ b/crates/g3-ensembles/src/flock.rs @@ -735,8 +735,8 @@ async fn run_segment( segment_status.errors += 1; } - // Try to extract metrics from session log if available - let log_dir = segment_dir.join("logs"); + // Try to extract metrics from session log if available (check .g3/sessions/) + let log_dir = segment_dir.join(".g3").join("sessions"); if log_dir.exists() { if let Ok(entries) = std::fs::read_dir(&log_dir) { for entry in entries.flatten() { diff --git a/crates/g3-planner/src/lib.rs b/crates/g3-planner/src/lib.rs index ffaff8f..d3d9042 100644 --- a/crates/g3-planner/src/lib.rs +++ b/crates/g3-planner/src/lib.rs @@ -66,7 +66,7 @@ pub async fn get_initial_discovery_messages( // Step 1: Run explore_codebase to get the codebase report let codebase_report = explore_codebase(codebase_path); - // Write the codebase report to logs directory + // Write the codebase report to discovery directory write_code_report(&codebase_report)?; // Step 2: Build the prompt with the codebase report appended @@ -112,7 +112,7 @@ pub async fn get_initial_discovery_messages( shell_commands.len() )); - // Write the discovery commands to logs directory + // Write the discovery commands to discovery directory write_discovery_commands(&shell_commands)?; // Step 6: Format as tool messages @@ -194,21 +194,21 @@ pub fn extract_summary(response: &str) -> Option { } } -/// Write the codebase report to logs directory +/// Write the codebase report to discovery directory fn write_code_report(report: &str) -> Result<()> { - // Get logs directory from workspace path or current dir - let logs_dir = if let Ok(workspace_path) = std::env::var("G3_WORKSPACE_PATH") { - std::path::PathBuf::from(workspace_path).join("logs") + // Get discovery directory from workspace path or current dir + let discovery_dir = if let Ok(workspace_path) = std::env::var("G3_WORKSPACE_PATH") { + std::path::PathBuf::from(workspace_path).join(".g3").join("discovery") } else { - std::env::current_dir().unwrap_or_default().join("logs") + std::env::current_dir().unwrap_or_default().join(".g3").join("discovery") }; - // Ensure logs directory exists - fs::create_dir_all(&logs_dir)?; + // Ensure discovery directory exists + fs::create_dir_all(&discovery_dir)?; // Generate timestamp in same format as tool_calls log let timestamp = Local::now().format("%Y%m%d_%H%M%S").to_string(); - let filename = logs_dir.join(format!("code_report_{}.log", timestamp)); + let filename = discovery_dir.join(format!("code_report_{}.log", timestamp)); // Write the report to file let mut file = OpenOptions::new() @@ -223,21 +223,21 @@ fn write_code_report(report: &str) -> Result<()> { Ok(()) } -/// Write the discovery commands to logs directory +/// Write the discovery commands to discovery directory fn write_discovery_commands(commands: &[String]) -> Result<()> { - // Get logs directory from workspace path or current dir - let logs_dir = if let Ok(workspace_path) = std::env::var("G3_WORKSPACE_PATH") { - std::path::PathBuf::from(workspace_path).join("logs") + // Get discovery directory from workspace path or current dir + let discovery_dir = if let Ok(workspace_path) = std::env::var("G3_WORKSPACE_PATH") { + std::path::PathBuf::from(workspace_path).join(".g3").join("discovery") } else { - std::env::current_dir().unwrap_or_default().join("logs") + std::env::current_dir().unwrap_or_default().join(".g3").join("discovery") }; - // Ensure logs directory exists - fs::create_dir_all(&logs_dir)?; + // Ensure discovery directory exists + fs::create_dir_all(&discovery_dir)?; // Generate timestamp in same format as tool_calls log let timestamp = Local::now().format("%Y%m%d_%H%M%S").to_string(); - let filename = logs_dir.join(format!("discovery_commands_{}.log", timestamp)); + let filename = discovery_dir.join(format!("discovery_commands_{}.log", timestamp)); // Write the commands to file let mut file = OpenOptions::new() diff --git a/crates/g3-planner/src/llm.rs b/crates/g3-planner/src/llm.rs index 4f6c5a3..1f40944 100644 --- a/crates/g3-planner/src/llm.rs +++ b/crates/g3-planner/src/llm.rs @@ -324,15 +324,13 @@ pub async fn call_refinement_llm_with_tools( let ui_writer = PlannerUiWriter::new(); // CRITICAL FIX: Use the actual workspace directory, NOT codepath! - // The workspace is where logs should be written (e.g., /tmp/g3_test_workspace) + // The workspace is where session data should be written (e.g., /tmp/g3_test_workspace) // The codepath is where the source code lives (e.g., ~/RustroverProjects/g3) - // Previous bug: was using codepath as workspace, causing logs to go to wrong location let workspace_path = std::path::PathBuf::from(workspace); let project = Project::new(workspace_path.clone()); project.ensure_workspace_exists()?; project.enter_workspace()?; - - project.ensure_logs_dir()?; + // Create agent - not autonomous mode, just regular agent with tools let mut agent = Agent::new_with_readme_and_quiet( planner_config, diff --git a/crates/g3-planner/src/planner.rs b/crates/g3-planner/src/planner.rs index 6393d07..597f517 100644 --- a/crates/g3-planner/src/planner.rs +++ b/crates/g3-planner/src/planner.rs @@ -777,13 +777,13 @@ pub async fn run_planning_mode( // Set G3_WORKSPACE_PATH environment variable EARLY for all logging std::env::set_var("G3_WORKSPACE_PATH", workspace_dir.display().to_string()); - // Create logs directory and verify it exists - let logs_dir = workspace_dir.join("logs"); - if !logs_dir.exists() { - fs::create_dir_all(&logs_dir) - .context("Failed to create logs directory")?; + // Create .g3 directory and verify it exists + let g3_dir = workspace_dir.join(".g3"); + if !g3_dir.exists() { + fs::create_dir_all(&g3_dir) + .context("Failed to create .g3 directory")?; } - print_msg(&format!("šŸ“ Logs directory: {}", logs_dir.display())); + print_msg(&format!("šŸ“ G3 directory: {}", g3_dir.display())); // Create the LLM provider for planning print_msg("šŸ”§ Initializing planner provider..."); diff --git a/crates/g3-planner/tests/logging_test.rs b/crates/g3-planner/tests/logging_test.rs index 4d42722..5754e28 100644 --- a/crates/g3-planner/tests/logging_test.rs +++ b/crates/g3-planner/tests/logging_test.rs @@ -6,22 +6,22 @@ use std::path::Path; #[test] fn test_log_files_created() { // This test verifies that the logging functions work correctly - // by checking that files can be created in the logs directory + // by checking that files can be created in the discovery directory - // Clean up any existing test logs - let _ = fs::remove_dir_all("logs"); + // Clean up any existing test discovery dir + let _ = fs::remove_dir_all(".g3/discovery"); - // Create logs directory - fs::create_dir_all("logs").expect("Failed to create logs directory"); + // Create discovery directory + fs::create_dir_all(".g3/discovery").expect("Failed to create discovery directory"); // Verify directory exists - assert!(Path::new("logs").exists()); - assert!(Path::new("logs").is_dir()); + assert!(Path::new(".g3/discovery").exists()); + assert!(Path::new(".g3/discovery").is_dir()); // Test writing a code report let test_report = "Test codebase report\nLine 2\nLine 3"; let timestamp = chrono::Local::now().format("%Y%m%d_%H%M%S").to_string(); - let report_filename = format!("logs/code_report_{}.log", timestamp); + let report_filename = format!(".g3/discovery/code_report_{}.log", timestamp); fs::write(&report_filename, test_report).expect("Failed to write code report"); assert!(Path::new(&report_filename).exists()); @@ -30,7 +30,7 @@ fn test_log_files_created() { assert_eq!(content, test_report); // Test writing discovery commands - let commands_filename = format!("logs/discovery_commands_{}.log", timestamp); + let commands_filename = format!(".g3/discovery/discovery_commands_{}.log", timestamp); let test_commands = "# Discovery Commands\n# Generated by g3-planner\n\nls -la\ncat README.md\n"; diff --git a/crates/g3-planner/tests/retry_feedback_test.rs b/crates/g3-planner/tests/retry_feedback_test.rs index 593c980..f5c34d6 100644 --- a/crates/g3-planner/tests/retry_feedback_test.rs +++ b/crates/g3-planner/tests/retry_feedback_test.rs @@ -82,7 +82,6 @@ fn test_extracted_feedback_approval_detection() { fn test_feedback_extraction_config_default() { let config = FeedbackExtractionConfig::default(); assert!(!config.verbose); - assert!(config.logs_dir.is_none()); assert!(config.default_feedback.contains("review")); } @@ -90,14 +89,9 @@ fn test_feedback_extraction_config_default() { fn test_feedback_extraction_config_custom() { let config = FeedbackExtractionConfig { verbose: true, - logs_dir: Some(std::path::PathBuf::from("/tmp/test_logs")), default_feedback: "Custom fallback message for testing".to_string(), }; assert!(config.verbose); - assert_eq!( - config.logs_dir, - Some(std::path::PathBuf::from("/tmp/test_logs")) - ); assert!(config.default_feedback.contains("Custom fallback")); } diff --git a/logs/errors/error_1768092277_awesome_do_you_wish_to_cc28060e1efe3d4b.json b/logs/errors/error_1768092277_awesome_do_you_wish_to_cc28060e1efe3d4b.json new file mode 100644 index 0000000..237368c --- /dev/null +++ b/logs/errors/error_1768092277_awesome_do_you_wish_to_cc28060e1efe3d4b.json @@ -0,0 +1,13 @@ +{ + "operation": "stream_completion", + "provider": "anthropic.default", + "model": "claude-opus-4-5", + "last_prompt": "Tool result: warning: g3-computer-control@0.1.0: Building VisionBridge Swift package...\nwarning: g3-computer-control@0.1.0: Copied libVisionBridge.dylib to /Users/dhanji/src/g3/target/release/libVisionBridge.dylib\nwarning: g3-computer-control@0.1.0: VisionBridge built successfully at /Users/dhanji/src/g3/crates/g3-computer-control/vision-bridge/.build/arm64-apple-macosx/release\n Compiling g3-core v0.1.0 (/Users/dhanji/src/g3/crates/g3-core)\nwarning: field `text` is never read\n --> crates/g3-core/src/background_memory.rs:372:12\n |\n372 | Text { text: String },\n | ---- ^^^^\n | |\n | field in this variant\n |\n = note: `AnthropicContent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis\n = note: `#[warn(dead_code)]` on by default\n\nwarning: field `id` is never read\n --> crates/g3-core/src/background_memory.rs:375:9\n |\n374 | ToolUse {\n | ------- field in this variant\n375 | id: ... (truncated, 1531 total bytes)", + "raw_request": "{\"messages\":[{\"role\":\"system\",\"content\":\"You are G3, an AI programming agent of the same skill level as a seasoned engineer at a major technology company. You analyze given tasks and write code to achieve goals.\\n\\nYou have access to tools. When you need to accomplish a task, you MUST use the appropriate tool. Do not just describe what you would do - actually use the tools.\\n\\nIMPORTANT: You must call tools to achieve goals. When you receive a request:\\n1. Analyze and identify what needs to be done\\n2. Call the appropriate tool with the required parameters\\n3. Continue or complete the task based on the result\\n4. If you repeatedly try something and it fails, try a different approach\\n5. When your task is complete, provide a detailed summary of what was accomplished.\\n\\nFor shell commands: Use the shell tool with the exact command needed. Always use `rg` (ripgrep) instead of `grep` - it's faster, has better defaults, and respects .gitignore. Avoid commands that produce a large amount of output, and consider piping those outputs to files. Example: If asked to list files, immediately call the shell tool with command parameter \\\"ls\\\".\\nIf you create temporary files for verification, place these in a subdir named 'tmp'. Do NOT pollute the current dir.\\n\\n# Task Management with TODO Tools\\n\\n**REQUIRED for multi-step tasks.** Use TODO tools when your task involves ANY of:\\n- Multiple files to create/modify (2+)\\n- Multiple distinct steps (3+)\\n- Dependencies between steps\\n- Testing or verification needed\\n- Uncertainty about approach\\n\\n## Workflow\\n\\nEvery multi-step task follows this pattern:\\n1. **Start**: Call todo_read, then todo_write to create your plan\\n2. **During**: Execute steps, then todo_read and todo_write to mark progress\\n3. **End**: Call todo_read to verify all items complete\\n4. **Finally**, call `remember` to save info on new features created or discovered\\n\\nNote: todo_write replaces the entire todo.g3.md file, so always read first to preserve content. TODO lists are scoped to the current session and stored in the session directory.\\n\\n## Examples\\n\\n**Example 1: Feature Implementation**\\nUser asks: \\\"Add user authentication with tests\\\"\\n\\nFirst action:\\n{\\\"tool\\\": \\\"todo_read\\\", \\\"args\\\": {}}\\n\\nThen create plan:\\n{\\\"tool\\\": \\\"todo_write\\\", \\\"args\\\": {\\\"content\\\": \\\"- [ ] Add user authentication\\\\n - [ ] Create User struct\\\\n - [ ] Add login endpoint\\\\n - [ ] Add password hashing\\\\n - [ ] Write unit tests\\\\n - [ ] Write integration tests\\\"}}\\n\\nAfter completing User struct:\\n{\\\"tool\\\": \\\"todo_read\\\", \\\"args\\\": {}}\\n{\\\"tool\\\": \\\"todo_write\\\", \\\"args\\\": {\\\"content\\\": \\\"- [ ] Add user authentication\\\\n - [x] Create User struct\\\\n - [ ] Add login endpoint\\\\n - [ ] Add password hashing\\\\n - [ ] Write unit tests\\\\n - [ ] Write integration tests\\\"}}\\n\\n**Example 2: Bug Fix**\\nUser asks: \\\"Fix the memory leak in cache module\\\"\\n\\n{\\\"tool\\\": \\\"todo_read\\\", \\\"args\\\": {}}\\n{\\\"tool\\\": \\\"todo_write\\\", \\\"args\\\": {\\\"content\\\": \\\"- [ ] Fix memory leak\\\\n - [ ] Review cache.rs\\\\n - [ ] Check for unclosed resources\\\\n - [ ] Add drop implementation\\\\n - [ ] Write test to verify fix\\\"}}\\n\\n**Example 3: Refactoring**\\nUser asks: \\\"Refactor database layer to use async/await\\\"\\n\\n{\\\"tool\\\": \\\"todo_read\\\", \\\"args\\\": {}}\\n{\\\"tool\\\": \\\"todo_write\\\", \\\"args\\\": {\\\"content\\\": \\\"- [ ] Refactor to async\\\\n - [ ] Update function signatures\\\\n - [ ] Replace blocking calls\\\\n - [ ] Update all callers\\\\n - [ ] Update tests\\\"}}\\n\\n## Format\\n\\nUse markdown checkboxes:\\n- \\\"- [ ]\\\" for incomplete tasks\\n- \\\"- [x]\\\" for completed tasks\\n- Indent with 2 spaces for subtasks\\n\\nKeep items short, specific, and action-oriented.\\n\\n## Benefits\\n\\nāœ“ Prevents missed steps\\nāœ“ Makes progress visible\\nāœ“ Helps recover from interruptions\\nāœ“ Creates better summaries\\n\\nIf you can complete it with 1-2 tool calls, skip TODO.\\n\\n# Temporary files\\n\\nIf you create temporary files for verification or investigation, place these in a subdir named 'tmp'. Do NOT pollute the current dir.\\n\\n# Web Research\\n\\nWhen you need to look up documentation, search for resources, find data online, or research a topic to complete your task, use the `research` tool.\\n\\n**Use the `research` tool** for any web research tasks:\\n- Researching APIs, SDKs, libraries, frameworks, or tools\\n- Finding approaches, patterns, or best practices\\n- Investigating bugs, issues, or error messages\\n- Looking up documentation or specifications\\n\\nSimply call `research` with a specific query describing what you need to know. The tool returns a structured research brief with options, trade-offs, and recommendations.\\n\\nIMPORTANT: If the user asks you to just respond with text (like \\\"just say hello\\\" or \\\"tell me about X\\\"), do NOT use tools. Simply respond with the requested text directly. Only use tools when you need to execute commands or complete tasks that require action.\\n\\nDo not explain what you're going to do - just do it by calling the tools.\\n\\n# P... (truncated, 387051 total bytes)", + "raw_response": null, + "stack_trace": " 0: std::backtrace::Backtrace::create\n 1: g3_core::error_handling::ErrorContext::new\n at ./crates/g3-core/src/error_handling.rs:72:27\n 2: g3_core::Agent::stream_completion_with_tools::{{closure}}\n at ./crates/g3-core/src/lib.rs:1924:33\n 3: g3_core::Agent::send_auto_memory_reminder::{{closure}}\n at ./crates/g3-core/src/lib.rs:1522:59\n 4: g3_cli::run_interactive::{{closure}}\n at ./crates/g3-cli/src/lib.rs:1941:71\n 5: g3_cli::run_with_console_mode::{{closure}}\n at ./crates/g3-cli/src/lib.rs:1359:10\n 6: g3_cli::run::{{closure}}\n at ./crates/g3-cli/src/lib.rs:688:70\n 7: g3::main::{{closure}}\n at ./src/main.rs:5:11\n 8: as core::future::future::Future>::poll\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/future/future.rs:124:9\n 9: tokio::runtime::park::CachedParkThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/park.rs:285:60\n 10: tokio::task::coop::with_budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5\n 11: tokio::task::coop::budget\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5\n 12: tokio::runtime::park::CachedParkThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/park.rs:285:31\n 13: tokio::runtime::context::blocking::BlockingRegionGuard::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/blocking.rs:66:9\n 14: tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/mod.rs:87:13\n 15: tokio::runtime::context::runtime::enter_runtime\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16\n 16: tokio::runtime::scheduler::multi_thread::MultiThread::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/mod.rs:86:9\n 17: tokio::runtime::runtime::Runtime::block_on_inner\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:370:45\n 18: tokio::runtime::runtime::Runtime::block_on\n at /Users/dhanji/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:340:13\n 19: g3::main\n at ./src/main.rs:5:5\n 20: core::ops::function::FnOnce::call_once\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/core/src/ops/function.rs:250:5\n 21: std::sys::backtrace::__rust_begin_short_backtrace\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/sys/backtrace.rs:152:18\n 22: std::rt::lang_start::{{closure}}\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/rt.rs:199:18\n 23: std::rt::lang_start_internal\n 24: std::rt::lang_start\n at /private/tmp/rust-20250628-8015-2pvnvd/rustc-1.88.0-src/library/std/src/rt.rs:198:5\n 25: _main\n", + "timestamp": 1768092277, + "context_tokens": 123333, + "session_id": "awesome_do_you_wish_to_cc28060e1efe3d4b", + "quiet": false +} \ No newline at end of file