MosswartOverlord/go-services
Erik c04cfaf2c6 feat(go-services): inventory-go search — computed_slot_name + slot/weapon/set filters
Adds the full computed_slot_name CASE (EquippableSlots decode, jewelry by
wielded-location, weapons, cloak) and the remaining SQL filters: weapon_type
(skill-id EXISTS), slot_names (per-slot OR clauses), item_set/item_sets
(translate_equipment_set_id, bug-for-bug).

Validated vs Python (total_count EXACT): weapon_type heavy/bow/caster (473/138/
474), slot_names ring/neck/cloak (1286/1428/220), item_set 13 (526). The
computed_slot_name VALUES match exactly (slot distribution identical: Head 721,
Hands 458, Feet 403, Chest 376, ...).

Two documented edge-case discrepancies, both Python main-vs-count CTE
inconsistencies (Python's count query uses a SIMPLIFIED slot CASE where armor ->
'Armor', so its own total_count disagrees with its item list): slot_names with
armor slot names, and sort_by=slot_name empty-string ordering. Our consistent
single-CASE implementation is arguably more correct; reconcile to Python's count
CTE later if strict parity on those is required.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 11:56:10 +02:00
..
compare feat(go-services): Phase 2 ingest — shared Ingestor + shadow consumer 2026-06-24 10:31:15 +02:00
discord-go feat(go-services): discord-go — Go port of discord-rare-monitor 2026-06-24 10:06:59 +02:00
inventory-go feat(go-services): inventory-go search — computed_slot_name + slot/weapon/set filters 2026-06-24 11:56:10 +02:00
nginx chore(go-services): ready-to-apply nginx /go/ snippet (user must sudo) 2026-06-24 09:51:25 +02:00
tracker-go feat(go-services): tracker share_* handlers (complete ingest) + shadow tuning 2026-06-24 11:27:25 +02:00
.gitattributes chore(go-services): add .gitattributes (force LF) to stop CRLF churn 2026-06-24 10:07:20 +02:00
docker-compose.go.yml feat(go-services): inventory-go Phase A — read-side scaffold + simple endpoints 2026-06-24 11:33:55 +02:00