Epic: one Eco website replacing DiscordLink's read-only features (DLT), jobs-tracker merged in #37
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?
Thesis
Kai wants a single Eco website that owns every read-only server surface for Sirens, so DiscordLink can be stripped down to the one thing it does well: chat sync. In Kai's framing - read-only info does not belong in Discord, websites are a better platform for it, and DiscordLink's non-chat features are "poorly maintained fluff." This is the "Kai version of DLT that actually works" (DLT here = DiscordLink's read-only display/tooling feature set, the server-info embeds it posts into Discord).
Two supporting reasons:
End state
What already exists (reuse, do not rebuild)
The eco-mcp-app data layer already pulls much of the DiscordLink parity set from Eco's
/info, admin/datasets, and the exporters: server status, economy, world map, milestones, species, government + elections, laws, climate. Jobs data comes from the EcoJobsTracker mod endpoint. So the epic is mostly surfacing this on the website coherently and closing the parity gaps, not building the pipes from scratch.Breakdown (candidate child issues)
Non-goals
Related
Trade & store logistics wave filed (children of this epic)
Kai is focused on trade and store logistics and on meeting-then-exceeding DiscordLink's trade surface without needing a server restart for a couple of hours. That constraint drove the decomposition below. DiscordLink reads live store shelves in-process (a new C# plugin, which means a restart), but the
CurrencyTradeexporter already ships every individual trade (#6), so nearly the whole surface is buildable from already-exported data with zero reset. The one live-shelf piece is isolated into a single reset-gated issue built offline against a C# shell harness, so nothing else waits on the clock.DiscordLink trade/store surface being matched:
Trades <name>lookup,WatchTradeFeed/WatchTradeDisplaywatchers,Currency/Currenciesmoney-supply. Exceeded via store-owner (a DiscordLink gap), price trend + fair-value, arbitrage and supply-gap logistics, and website + MCP delivery instead of Discord DMs (this epic's own thesis).Foundation - #6 trades ledger (the normalized
CurrencyTrademodel everything below consumes).Children filed:
fair_price.py). No reset./traderoute, the product surface tying it together. No reset.Dependency spine: #6 is the keystone. #49/#50/#52/#53 build on it. #51 consumes #49/#50. #54 consumes all data planes. #55 is independent to build. Dispatched as sibling headless runs.