Context-repo hydration: WARD_CONTEXT_REPOS=StrangeLoopGames/Eco is declared but never present, so mod runs can't verify against Eco source #611

Closed
opened 2026-07-05 05:17:19 +00:00 by coilysiren · 0 comments
Owner

Problem

WARD_CONTEXT_REPOS=StrangeLoopGames/Eco is set in mod-carrying containers so an engineer run can verify its C# against the real Eco source - but the source is never actually hydrated. Confirmed in a coilyco-gaming/eco-app run (2026-07-05): ~/projects/StrangeLoopGames/Eco is absent, /gitcache holds only the coilyco repos, and no Eco assemblies are on disk. Same failure coilyco-gaming/eco-app#41 already hit ("only an empty /gitcache/.StrangeLoopGames__Eco.lock was present, GitHub unreachable").

Likely root cause: StrangeLoopGames/Eco is a private external GitHub repo the container's gitcache mirror cannot pull (no access / GitHub unreachable from the sealed container), so the context-repo declaration resolves to an empty lock rather than a clone.

Impact

Every Eco mod run compiles against the Eco.ReferenceAssemblies NuGet (API surface only, no bodies) but cannot read or verify against the real Eco source - so assumptions about runtime behavior (e.g. WorldObjectManager.ForEach semantics, StoreComponent/TradeOffer shape in stores, whether user.Id is the exporter's Citizen id, whether AutoShutdownHour is a list) go unchecked. The mods (eco-app #5, #8, #28, #55) are API-type-checked and never source-verified. The declaration reads as "source available" when it is not, which is worse than an honest absence.

Ask

  1. Make WARD_CONTEXT_REPOS=StrangeLoopGames/Eco reliably hydrate in mod-carrying containers - grant the gitcache mirror access to the private repo, or seed it into the image/cache another way.
  2. If the private/unreachable constraint is permanent, then the declaration should fail loud, not silently empty - a run should know its declared context repo did not arrive (a startup warning), and the docs should route source-verification to the substitute path (reference-assemblies for compile-check + a real load-test gate for behavior, tracked separately).

Acceptance

  • In a mod-carrying container, the declared Eco source is present and readable, or its absence is surfaced loudly at startup (not a silent empty lock).

Refs

Found in the eco-app director session, 2026-07-05, while auditing untested mod code. Prior sighting: coilyco-gaming/eco-app#41. Affected mod runs: eco-app #5, #8, #28, #55. Related: the reference-assembly pin audit (eco-app sibling) and a pre-deploy mod-load gate (eco-ops#30).

## Problem `WARD_CONTEXT_REPOS=StrangeLoopGames/Eco` is set in mod-carrying containers so an engineer run can verify its C# against the **real Eco source** - but the source is **never actually hydrated**. Confirmed in a coilyco-gaming/eco-app run (2026-07-05): `~/projects/StrangeLoopGames/Eco` is absent, `/gitcache` holds only the coilyco repos, and no Eco assemblies are on disk. Same failure coilyco-gaming/eco-app#41 already hit ("only an empty `/gitcache/.StrangeLoopGames__Eco.lock` was present, GitHub unreachable"). Likely root cause: `StrangeLoopGames/Eco` is a **private external GitHub repo** the container's gitcache mirror cannot pull (no access / GitHub unreachable from the sealed container), so the context-repo declaration resolves to an empty lock rather than a clone. ## Impact Every Eco **mod** run compiles against the `Eco.ReferenceAssemblies` NuGet (API surface only, no bodies) but **cannot read or verify against the real Eco source** - so assumptions about runtime behavior (e.g. `WorldObjectManager.ForEach` semantics, `StoreComponent`/`TradeOffer` shape in `stores`, whether `user.Id` is the exporter's `Citizen` id, whether `AutoShutdownHour` is a list) go unchecked. The mods (eco-app #5, #8, #28, #55) are API-type-checked and **never source-verified**. The declaration reads as "source available" when it is not, which is worse than an honest absence. ## Ask 1. Make `WARD_CONTEXT_REPOS=StrangeLoopGames/Eco` **reliably hydrate** in mod-carrying containers - grant the gitcache mirror access to the private repo, or seed it into the image/cache another way. 2. If the private/unreachable constraint is **permanent**, then the declaration should **fail loud, not silently empty** - a run should know its declared context repo did not arrive (a startup warning), and the docs should route source-verification to the substitute path (reference-assemblies for compile-check + a real load-test gate for behavior, tracked separately). ## Acceptance * In a mod-carrying container, the declared Eco source is present and readable, **or** its absence is surfaced loudly at startup (not a silent empty lock). ## Refs Found in the eco-app director session, 2026-07-05, while auditing untested mod code. Prior sighting: coilyco-gaming/eco-app#41. Affected mod runs: eco-app #5, #8, #28, #55. Related: the reference-assembly pin audit (eco-app sibling) and a pre-deploy mod-load gate (eco-ops#30).
Sign in to join this conversation.
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/ward#611
No description provided.