Improve body_json payload (currently empty) #7

Open
opened 2026-05-23 20:54:17 +00:00 by coilysiren · 0 comments
Owner

Originally filed by @coilysiren on 2026-05-18T06:45:38Z - https://github.com/coilysiren/eco-replay/issues/1

Problem

The C# mod's ActionMapper.ToRow serializes each GameAction to a body_json column for inspection in the UI. Sampling the live Sirens DB right after first deploy shows every row's body is "{}".

Why: ShallowResolver.CreateProperty replaces User/ItemStack/WorldObject/Deed property values with their .Name, but the substitution mechanism (NameOnlyValueProvider) didn't fire on first run. Net effect: every property that would be serialized gets pruned or skipped, and we end up with {}.

Next steps

  • Decide whether the body should be: full reflective dump (a la Eco's own LiteDB serializer) or curated per-action-type (citizen, position, item-name, target) like Chronicler does.
  • The curated route is much more useful for grief-detection use cases. Most of Chronicler's reach comes from per-action-type extraction.

Out of scope

  • Web UI improvements past index.html table. That's its own issue.
_Originally filed by @coilysiren on 2026-05-18T06:45:38Z - [https://github.com/coilysiren/eco-replay/issues/1](https://github.com/coilysiren/eco-replay/issues/1)_ **Problem** The C# mod's `ActionMapper.ToRow` serializes each `GameAction` to a `body_json` column for inspection in the UI. Sampling the live Sirens DB right after first deploy shows every row's body is `"{}"`. **Why:** `ShallowResolver.CreateProperty` replaces `User`/`ItemStack`/`WorldObject`/`Deed` property values with their `.Name`, but the substitution mechanism (`NameOnlyValueProvider`) didn't fire on first run. Net effect: every property that would be serialized gets pruned or skipped, and we end up with `{}`. **Next steps** - Decide whether the body should be: full reflective dump (a la Eco's own LiteDB serializer) or curated per-action-type (citizen, position, item-name, target) like Chronicler does. - The curated route is much more useful for grief-detection use cases. Most of Chronicler's reach comes from per-action-type extraction. **Out of scope** - Web UI improvements past `index.html` table. That's its own issue.
Sign in to join this conversation.
No labels
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/eco-replay#7
No description provided.