test: add unit tests for FrameTracer and DivergenceDetector (closes #208)#219
Open
acailic wants to merge 5 commits into
Open
test: add unit tests for FrameTracer and DivergenceDetector (closes #208)#219acailic wants to merge 5 commits into
acailic wants to merge 5 commits into
Conversation
- Extract StrEnum 3.10 compat shim into agent_debugger_sdk.core._compat (removed 7 duplicate copies from core modules) - Fix duplicate CoordinationIssue in core/__init__.py __all__ - Add composite indexes: events(session_id,timestamp), events(tenant_id,event_type), events(tenant_id,timestamp), sessions(tenant_id,started_at), checkpoints(session_id,sequence) - Add session-scoped shared_app fixture in conftest.py replacing module-level _shared_app in 7 test files - Enable pyright type checking in CI (remove || true, add --ignoreexternal) - Create CHANGELOG.md 🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
- api/schemas.py → re-export facade for backward compatibility - api/schemas_core.py: sessions, events, checkpoints, traces, API keys - api/schemas_alerts.py: anomaly alerts, alert policies, fix notes - api/schemas_analysis.py: workflow, safety, redundancy, causal, drift, baseline 🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
- Move test_collector_*.py → tests/collector/ - Move test_research_*.py → tests/research/ - Move test_alert_*.py → tests/alerts/ - Move test_e2e_*.py, test_phase2_*.py → tests/integration/ - Add frontend/src/utils/logger.ts centralized logging utility - Replace 30+ raw console.log/warn/error with logger in 14 files - Add deprecation note to core/__init__.py barrel module 🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
…ks, docs - Add /api/version endpoint for API contract versioning - Add frontend/src/api/httpClient.ts typed fetch wrapper - Add tests/contract/test_schema_alignment.py (Session + TraceEvent fields) - Add agent_debugger_sdk/telemetry/ OpenTelemetry integration (opt-in) - Add tests/test_performance_regression.py (app startup, serialization, queries) - Add TraceEventSchema documentation explaining flat-union pattern - Add redaction/ module documentation - Add frontend/src/utils/d3.ts typed D3 wrapper for visualization - Add core/__init__.py barrel deprecation note 🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
Closes #208. Adds tests/test_frame_tracer_divergence.py with 53 tests covering TokenUsage arithmetic and serialization, FrameEvent dataclass and to_dict(), FrameLifetimeTrace construction, build_frame_tree(), capture_function_call decorator, from_dict/to_dict round-trip, DivergenceType/DivergenceSeverity enums, DivergencePoint.to_dict(), detect_divergences(), compare_session_structures(), analyze_temporal_divergence(), and analyze_behavioral_divergence(). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
tests/test_frame_tracer_divergence.pywith 53 tests covering two previously zero-coverage modulesTokenUsagearithmetic/serialization,FrameEventdataclass andto_dict(),FrameLifetimeTraceconstruction,build_frame_tree()(empty/single/parent-child/multi-root), query helpers (get_frame_by_id,get_frames_at_depth,filter_frames_by_name),get_cost_breakdown(),FrameCaptureContextparent-child tracking,capture_function_calldecorator (no-context, with-context, exception, no-args), andfrom_dict/to_dictround-tripDivergencePoint.to_dict(),detect_divergences()(empty, identical, count mismatch, session ID extraction, bounded score),compare_session_structures(),analyze_temporal_divergence(),analyze_behavioral_divergence()Test plan
python3 -m pytest -q tests/test_frame_tracer_divergence.py→ 53 passedruff check tests/test_frame_tracer_divergence.py→ no errorsCloses #208
🤖 Generated with Claude Code