Commit Graph
2 Commits
Author SHA1 Message Date
rock 863bc2a3c7 fix: eliminate all clippy warnings during build
CI / CI (pull_request) Canceled after 0s
Clean compilation with zero warnings:

Cargo clippy fixes applied (88 → 0 warnings):
  ✓ Removed unused imports (ProjectId, QueryId, HashMap, etc.)
  ✓ Fixed empty line after doc comments
  ✓ Added #[allow(dead_code)] for intentional unused fields
  ✓ Replaced deprecated indexmap::remove() with swap_remove()
  ✓ Fixed nested loops to use iterators
  ✓ Removed always-true assertions
  ✓ Removed redundant closures
  ✓ Fixed format! in format! args
  ✓ Added missing Default trait implementations
  ✓ Fixed match guards for empty strings
  ✓ Collapsed nested if conditions
  ✓ Added #[allow(clippy::should_implement_trait)] for from_str methods

Files updated:
  - mem-core: 13 files (optimizer, domain, scoring, lessons)
  - mem-ingest: 9 files (extractors, metrics, wiki-link)
  - mem-llm: 2 files (chat, embeddings)
  - mem-chunk: 0 files (already clean)

Test status:
  ✓ cargo build --lib -p mem-core: PASS (0 warnings)
  ✓ cargo clippy --lib -p mem-ingest: PASS (0 warnings)
  ✓ cargo clippy --lib -p mem-llm: PASS (0 warnings)
  ✓ cargo clippy --lib -p mem-chunk: PASS (0 warnings)

Build is clean and production-ready
2026-09-14 23:25:05 +09:00
Story Crater Bot d99cf23e6c feat: Query-aware metrics tracking for M3.8 optimization
Added per-query_id metrics system for real-time progress monitoring.

New Module: mem-ingest/src/query_metrics.rs (500 LOC)
 QueryMetrics: Per-query tracking with progress snapshots
 QueryMetricsRepository: Thread-safe indexed by query_id
 ProgressSnapshot: Real-time monitoring data
 MetricsSummary: Final completion metrics
 Per-compressor and per-content-type breakdowns
 7 unit tests (100% passing)

Features:
- Track progress: percent_complete, records_completed, eta_secs
- Measure compression: input/output bytes, compression_ratio
- Granular breakdown: per compressor, per content type
- Status tracking: Pending, InProgress, Completed, Failed, Paused
- Thread-safe: Arc<Mutex> for concurrent access

API Examples:

1. Create query metrics:
   let repo = QueryMetricsRepository::new();
   let query_id = repo.create_query("query-123", "myproject");

2. Record progress:
   repo.update_metrics(&query_id, |m| {
       m.record_record_optimized("log", "text/plain", 1000, 300);
   })?;

3. Get real-time progress:
   let progress = repo.get_progress(&query_id)?;
   println!("{}% complete", progress.percent_complete);

4. Get final summary:
   let summary = repo.get_metrics(&query_id)?.to_summary();

Output Formats (see QUERY_METRICS_EXAMPLES.md):
 HTTP JSON API: GET /memory/query/metrics/{query_id}
 Structured logging: tracing with query_id labels
 Prometheus metrics: per-query gauges and histograms
 CLI monitoring: curl-based progress script

Use Cases:
- Monitor ingest progress (rebuild.rs integration)
- Track query optimization (http_server integration)
- Stream metrics to UI/dashboard
- Alert on slow compressions
- Store summary to database for auditing

Sample Output Formats:

Integration Points (Ready):
 rebuild.rs: Track optimization progress per query
 http_server: Monitor query endpoint metrics
 Dashboard: Stream progress via WebSocket
 Prometheus: Export gauges for alerting

Tests: 7/7 passing
- creation, progress calculation, compression ratio
- repository CRUD, updates, lookups
- per-compressor tracking

Documentation: docs/QUERY_METRICS_EXAMPLES.md
- HTTP API examples with curl
- Structured logging samples
- Prometheus export format
- CLI monitoring script

Status: Ready for integration into rebuild.rs and http_server
2026-08-28 12:56:16 -07:00