Mod-side rollout: push EcoJobsTracker.dll with lastSeen field to kai-server #31

Closed
opened 2026-06-17 07:29:50 +00:00 by coilysiren · 1 comment
Owner

Originally filed by @coilysiren on 2026-05-09T06:30:53Z

Filed by Claude Code on Kai's behalf.

Context

#3 changed the mod's /api/v1/skills DTO from `active: bool` to `lastSeen: string | null`, with the Python tracker deriving "active" from that timestamp. The web app shipped (eco-jobs-tracker.coilysiren.me), but the C# mod DLL on kai-server is still the pre-#3 build, so the live dashboard saw `lastSeen` missing on every player and rendered the entire active set as 0/N.

A backwards-compat shim landed in `upstream.py` that falls back to the old `active: bool` so the dashboard reflects "online right now" until the new mod is in place. That restores pre-#3 behavior for now.

To complete the rollout

  1. `coily exec build-mod` (compiles `mod/src/bin/Release/net10.0/EcoJobsTracker.dll` plus `.deps.json` / `.pdb`).
  2. Build a zip with the `Mods/EcoJobsTracker/` prefix per infrastructure/eco.md §4.
  3. `coily gaming eco mod push --src EcoJobsTracker.zip`.
  4. `coily gaming eco restart` (kicks live players - schedule for a quiet window).
  5. Verify at https://eco-jobs-tracker.coilysiren.me/api/v1/players that the active set now reflects "in last 7 days" and not just "online now."

After the rollout lands

Delete the `active: bool` fallback in `src/eco_spec_tracker/upstream.py:_resolve_last_seen` and the matching test fixture (`tests/test_smoke.py:OLD_MOD_FIXTURE`).

Filed by Claude Code on Kai's behalf.


Migrated from coilyco-flight-deck/eco-jobs-tracker#5 during the eco repo consolidation (coilysiren/inbox#100).

_Originally filed by @coilysiren on 2026-05-09T06:30:53Z_ > Filed by Claude Code on Kai's behalf. ## Context #3 changed the mod's `/api/v1/skills` DTO from \`active: bool\` to \`lastSeen: string | null\`, with the Python tracker deriving \"active\" from that timestamp. The web app shipped (eco-jobs-tracker.coilysiren.me), but the C# mod DLL on kai-server is still the pre-#3 build, so the live dashboard saw \`lastSeen\` missing on every player and rendered the entire active set as 0/N. A backwards-compat shim landed in \`upstream.py\` that falls back to the old \`active: bool\` so the dashboard reflects \"online right now\" until the new mod is in place. That restores pre-#3 behavior for now. ## To complete the rollout 1. \`coily exec build-mod\` (compiles \`mod/src/bin/Release/net10.0/EcoJobsTracker.dll\` plus \`.deps.json\` / \`.pdb\`). 2. Build a zip with the \`Mods/EcoJobsTracker/\` prefix per [infrastructure/eco.md §4](../infrastructure/eco.md). 3. \`coily gaming eco mod push --src EcoJobsTracker.zip\`. 4. \`coily gaming eco restart\` (kicks live players - schedule for a quiet window). 5. Verify at https://eco-jobs-tracker.coilysiren.me/api/v1/players that the active set now reflects \"in last 7 days\" and not just \"online now.\" ## After the rollout lands Delete the \`active: bool\` fallback in \`src/eco_spec_tracker/upstream.py:_resolve_last_seen\` and the matching test fixture (\`tests/test_smoke.py:OLD_MOD_FIXTURE\`). > Filed by Claude Code on Kai's behalf. --- _Migrated from coilyco-flight-deck/eco-jobs-tracker#5 during the eco repo consolidation (coilysiren/inbox#100)._
Owner

Completion evidence: the live fused jobs API reports upstream data rather than mocks, and its seven-day active count exceeded the simultaneous public online count. That cannot come from the retired active: bool online-only fallback. Commit e042ea5 removed that compatibility branch and its old-mod fixture after the live contract was proven. The focused jobs tests passed as part of the 540 passing tests on native Windows.

Completion evidence: the live fused jobs API reports upstream data rather than mocks, and its seven-day active count exceeded the simultaneous public online count. That cannot come from the retired `active: bool` online-only fallback. Commit `e042ea5` removed that compatibility branch and its old-mod fixture after the live contract was proven. The focused jobs tests passed as part of the 540 passing tests on native Windows.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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-gaming/eco-app#31
No description provided.