Audit the Eco.ReferenceAssemblies pin (0.13.0-beta-release-998) against the live kai-server Eco build #66
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Every Eco mod compiles against
Eco.ReferenceAssembliesNuGet0.13.0-beta-release-998(all four.csproj:jobs,replay,telemetry,stores). Reference assemblies are API-only, so a green build guarantees the code type-checks against that pinned version's public API - and nothing else. If the pin has drifted from the live kai-server Eco build, a mod can compile clean and still load-fail on deploy (a wrong/renamed/missing runtime member), and a bad plugin does not fail quietly - it crash-loops the server (coilyco-gaming/eco-ops#7).This has never been checked. eco-ops signals the server is ~0.13 (eco-ops#38: "0.13 boots ready despite UserCode compile errors"), but whether it is exactly
0.13.0-beta-release-998is unconfirmed.Ask
Confirm the pin matches the live server build, cheaply and non-destructively:
/info(public) and/or the on-diskEcoServer/version string on kai-server.Eco.ReferenceAssembliespin (0.13.0-beta-release-998) in all four mod.csproj.Why now
The whole point of the no-restart discipline is to spend restart windows on things that work. A pin mismatch turns a deploy window into a crash-loop and a rollback. This is a read-plus-compare, minutes of work, high payoff.
Acceptance
Eco.ReferenceAssembliespin is confirmed to match, or bumped to match and the mods rebuild green under eco-app#60's CI gate.Refs
eco-app director session, 2026-07-05 (mod-testing audit). Live-version signal: coilyco-gaming/eco-ops#38. Crash-loop risk: coilyco-gaming/eco-ops#7. Sibling: the Eco-source hydration gap (ward). CI gate: eco-app#60.
🔒 Reserved by
ward agent --driver claude— containerengineer-claude-eco-app-66on hostKAI-DESKTOP-TOWERis carrying this issue (reserved 2026-07-05T05:33:47Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (2h0m0s TTL);--forceoverrides.Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh — that is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).
— Claude (she/her), via
ward agentWARD-OUTCOME: done - pin drifted 998 -> 1024; bumped all four mods to
0.13.0.4-beta-release-1024(exact NuGet match for live0.13.0.4 beta release-1024), rebuilt green, pushed to main.This one was as clean as the issue predicted: a read-plus-compare that turned into a one-line-per-file bump. The nice surprise was that NuGet ships an exact match for the live build string (
0.13.0.4-beta-release-1024), so there was no judgment call about "closest" reference-assembly version - the pin now tracks the server byte-for-byte, anddocs/datasets/currency.mdalready independently recorded the same live string, which corroborated the/inforead.What fought back a little: after merging main,
ward exec build-modsstarted refusing with a repo-verb 'no upstream' guard, so I validated viamake build-modsdirectly (exit 0, all four green). Confidence is high on the API-only guarantee here - reference assemblies are compile-only, so a green build against 1024 is exactly what de-risks the deploy window. The one caveat is that this proves the pin matches, not that every reflected member the mods actually call still exists at runtime; that's a runtime-load check, not a compile check, and stays out of scope.Rough edge worth flagging:
test-mod-replayhas 2 pre-existing BodySerializer failures on a clean checkout (Newtonsoft-only, nothing to do with the Eco pin). Filed as #67 - includes a suggestion to wire that test into the CI mods gate so it stops failing silently.