MosswartOverlord/go-services/tracker-go
Erik 7350b00341 feat(go-services): Phase 2 — combat_stats accumulator (cross-language exact)
Ports main.py's _combat_session_delta / _combat_merge_into_lifetime (incl. the
documented "offense/defense use latest, additively" quirk) and the combat_stats
handler (session delta -> DB-backed lifetime merge -> delete-then-insert of
combat_stats + combat_stats_sessions). Read handlers gain the live combat
overlay (union live + DB), like Python.

Validation:
- combat.go `combat-merge` CLI folds snapshots through the accumulator; diffed
  against the Python functions on identical input -> byte-IDENTICAL.
- combat_test.go golden test runs in the build (go test now part of the tracker
  Dockerfile).
- Live: 40 combat lifetime rows + 40 session snapshots + rare_events flowing in
  dereth_go via the shadow consumer.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 10:42:15 +02:00
..
auth.go feat(go-services): tracker-go — auth gate (itsdangerous + internal-trust) 2026-06-24 09:48:47 +02:00
charstats.go feat(go-services): Phase 2 — combat_stats accumulator (cross-language exact) 2026-06-24 10:42:15 +02:00
combat.go feat(go-services): Phase 2 — combat_stats accumulator (cross-language exact) 2026-06-24 10:42:15 +02:00
combat_test.go feat(go-services): Phase 2 — combat_stats accumulator (cross-language exact) 2026-06-24 10:42:15 +02:00
Dockerfile feat(go-services): Phase 2 — combat_stats accumulator (cross-language exact) 2026-06-24 10:42:15 +02:00
go.mod feat(go-services): tracker-go Phase 0/1 — /live + /trails read parity 2026-06-24 09:24:22 +02:00
ingest.go feat(go-services): Phase 2 — combat_stats accumulator (cross-language exact) 2026-06-24 10:42:15 +02:00
live.go feat(go-services): tracker-go Phase 0/1 — /live + /trails read parity 2026-06-24 09:24:22 +02:00
main.go feat(go-services): Phase 2 — combat_stats accumulator (cross-language exact) 2026-06-24 10:42:15 +02:00
memstate.go feat(go-services): Phase 2 ingest — shared Ingestor + shadow consumer 2026-06-24 10:31:15 +02:00
proxy.go feat(go-services): tracker-go — complete the Phase 1 read API 2026-06-24 09:38:10 +02:00
reads.go feat(go-services): tracker-go — complete the Phase 1 read API 2026-06-24 09:38:10 +02:00
schema.go feat(go-services): Phase 2 foundation — isolated shadow DB + schema 2026-06-24 10:18:30 +02:00
shadow.go feat(go-services): Phase 2 ingest — shared Ingestor + shadow consumer 2026-06-24 10:31:15 +02:00
store.go feat(go-services): Phase 2 foundation — isolated shadow DB + schema 2026-06-24 10:18:30 +02:00
totals.go feat(go-services): tracker-go — complete the Phase 1 read API 2026-06-24 09:38:10 +02:00