Commit Graph

4 Commits

Author SHA1 Message Date
Dhanji R. Prasanna
21f8d5a1aa Add integration tests for CacheStats and Gemini serialization
Agent: hopper

Added two new integration test files:

1. cache_stats_integration_test.rs (g3-core)
   - Tests CacheStats accumulation through streaming completion flow
   - Verifies cache hit detection (cache_read_tokens > 0)
   - Tests multi-request accumulation of cache statistics
   - Verifies cache efficiency and hit rate calculations
   - Uses MockProvider to simulate provider usage data

2. gemini_serialization_test.rs (g3-providers)
   - Tests Gemini API message format conversion
   - Verifies system messages become system_instruction
   - Verifies assistant role maps to "model" (Gemini terminology)
   - Tests tool conversion to function_declarations format
   - Characterizes multi-system-message behavior (last wins)

Both test files follow blackbox/integration testing principles:
- Test observable behavior through stable surfaces
- Do not assert internal implementation details
- Include documentation of what is/is not asserted
2026-01-29 11:28:52 +11:00
Dhanji R. Prasanna
5d20da2609 Add 54 integration tests for CLI, tools, and message serialization
New test files:
- crates/g3-cli/tests/cli_integration_test.rs (14 tests)
  Blackbox CLI tests: help/version flags, argument validation,
  conflicting modes, flock mode requirements

- crates/g3-core/tests/tool_execution_test.rs (20 tests)
  Tool call structure tests and unified diff application:
  read_file, write_file, str_replace, shell, background_process,
  todo, final_output, code_search, take_screenshot

- crates/g3-providers/tests/message_serialization_test.rs (20 tests)
  Round-trip serialization tests for Message, MessageRole,
  CacheControl, and Tool types. Covers Unicode, special chars,
  and edge cases.

All tests follow blackbox/integration-first principles with
documentation of what they protect and intentionally do not assert.
2026-01-07 09:23:34 +11:00
Jochen
52f78653b4 add context window monitor
Writes the current context window to logs/current_context_window (uses a symlink to a session ID).

This PR was unfortunately generated by a different LLM and did a ton of superficial reformating, it's actually a fairly small and benign change, but I don't want to roll back everything. Hope that's ok.
2025-11-27 21:00:02 +11:00
Jochen
bfee8040e9 regression tests added 2025-11-19 11:32:14 +11:00