48 lines
4.0 KiB
Markdown
48 lines
4.0 KiB
Markdown
## final-review-fix (2026-07-08 15:41 CST)
|
|
|
|
### Changes
|
|
|
|
- Made realtime duplicate suppression source-aware in `go/vehicle-gateway/internal/stats/daily_metric.go` by keying the in-memory mileage cache with `vin + protocol + source_key + stat_date`, so identical mileage from different sources is retained while same-source repeats are still skipped.
|
|
- Added optional previous-baseline querying and per-source/day caching in `Writer`; realtime candidates now:
|
|
- become `NO_PREVIOUS_BASELINE` with reason `missing_previous_source` when the same-source previous-day candidate is absent,
|
|
- use previous-day `latest_total_mileage_km` as `first_total_mileage_km`,
|
|
- compute `daily_mileage_km` from previous-day baseline when present,
|
|
- become `INVALID_DELTA` with reason `outside_daily_range` when the delta is negative or above `maxSelectedDailyMileageKM`.
|
|
- Added generic stale-final cleanup to `ProjectDailyMileage` in `go/vehicle-gateway/internal/stats/source_mileage.go` so `vehicle_daily_mileage` is deleted when no candidate remains selected for the exact `(vin, stat_date, protocol)` target.
|
|
- Changed `BACKFILL_METHOD` default from `scan` to `last_diff` in `go/vehicle-gateway/cmd/stats-backfill/main.go`.
|
|
- Expanded regression coverage for source-aware realtime dedupe, realtime baseline/no-baseline behavior, projector cleanup SQL, stale-final cleanup through backfill, and the backfill method default.
|
|
|
|
### Test Results
|
|
|
|
- `cd /Users/lingniu/project/ai-coding/lingniu-vehicle-ingest/go/vehicle-gateway && go test ./internal/stats -run 'TestWriter|TestProjectDailyMileage|TestSource' -count=1`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/stats 0.435s`
|
|
- `cd /Users/lingniu/project/ai-coding/lingniu-vehicle-ingest/go/vehicle-gateway && go test ./cmd/stats-backfill ./internal/stats -count=1`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/cmd/stats-backfill 0.643s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/stats 0.279s`
|
|
- `cd /Users/lingniu/project/ai-coding/lingniu-vehicle-ingest/go/vehicle-gateway && go test ./... -count=1`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/cmd/capacity-check 0.419s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/cmd/gateway 0.397s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/cmd/history-writer 0.728s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/cmd/load-sim 0.698s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/cmd/nats-fast-writer 0.688s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/cmd/nats-kafka-bridge 0.683s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/cmd/realtime-api 0.574s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/cmd/stat-writer 0.534s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/cmd/stats-backfill 0.634s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/capacity 0.834s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/envelope 0.738s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/eventbus 0.758s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/gateway 0.483s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/health 0.384s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/history 0.502s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/identity 0.631s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/loadsim 0.640s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/metrics 0.626s`
|
|
- `? lingniu-vehicle-ingest/go/vehicle-gateway/internal/observability [no test files]`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/protocol/gb32960 0.622s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/protocol/jt808 0.371s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/protocol/yutongmqtt 0.384s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/realtime 0.496s`
|
|
- `ok lingniu-vehicle-ingest/go/vehicle-gateway/internal/stats 0.443s`
|
|
- `? lingniu-vehicle-ingest/go/vehicle-gateway/internal/topics [no test files]`
|