Expanded fleet cards for Town Survival, Farm Survival, and Bus Depot Survival can display “Current map: TranZit” beneath the correct Survival heading. The line suggests a different map or mode even when the reported engine map matches the server's selected variant.
Production verification on October 12, 2026 found both Town lobbies registered with map_slug: town, configured map: zm_transit, and observed last_map: zm_transit. Farm and Bus Depot have the same engine map with their respective variant slugs. This evidence does not indicate an engine-map change; the engine identifier alone cannot distinguish the variants.
Cause and scope
src/lib/map-aliases.ts:38-61 defines TranZit, Town, Farm, and Bus Depot as separate selections sharing zm_transit.
src/lib/ui/server-labels.ts:9-16 resolves a canonical map by its first matching entry, translating zm_transit to TranZit without variant context.
src/lib/fleet-overview.ts:69-90 uses the selected variant when it matches the observed engine map. src/routes/+page.svelte:575 passes that resolved name as the card heading.
src/lib/ui/components/ServerCard.svelte:79-80 independently applies the generic lookup and compares the resulting display text with the heading. Town Survival and TranZit differ, so :154-160 renders the misleading line. Empty compact cards hide it, explaining why only occupied Town lobbies showed it in the reported screenshot.
The fleet list and server-detail scoreboard already use the variant-aware fleet identity. A related fallback also needs coverage: when the variant is unknown, the generic lookup silently chooses TranZit. Conversely, an actual change to a different engine map currently changes the fleet identity and removes the old selection's launch shortcut; preserve that behavior.
Screenshots
Same synthetic Town lobby and data. The after image is a DOM mockup that removes the misleading duplicate line, not an implemented fix. Production data and application source were not modified.
Before:
After (mockup):
Fix
Use consistent, variant-aware map resolution for the fleet card heading and any Current map/Last map context. Do not interpret different friendly labels for the same selected engine map as a map change.
For known Town, Farm, and Bus Depot selections reporting zm_transit, retain their Survival names and omit the redundant TranZit line. Keep an explicitly selected TranZit server named TranZit.
When a shared engine map has no recognized variant, show an explicit ambiguous/raw-map fallback rather than asserting that the mode is TranZit.
Preserve genuine engine-map changes: display the observed map and keep the previous selection's launch shortcut unavailable. Do not force the configured Survival name onto a different reported engine map.
Add rendered-card regressions for all four zm_transit selections, custom server names with stored variant metadata, missing/unknown variants, compact versus expanded cards, stale observations, and a real map change such as zm_transit → zm_tomb. Verify reactive updates and consistency with fleet list/detail labels.
Validation
Reviewed main at 272055a. Reproduced the Town label in a real browser against a disposable fixture and verified that its detail scoreboard says Town Survival. Exercised map resolution for Town, Farm, Bus Depot, TranZit, Buried, an unknown variant, and a change to Origins. The two existing fleet-overview/server-card suites pass all 18 tests but do not cover the contradictory map line. Searched all 138 open and closed issues; no existing issue covers this label mismatch.
Expanded fleet cards for Town Survival, Farm Survival, and Bus Depot Survival can display “Current map: TranZit” beneath the correct Survival heading. The line suggests a different map or mode even when the reported engine map matches the server's selected variant.
Production verification on October 12, 2026 found both Town lobbies registered with `map_slug: town`, configured `map: zm_transit`, and observed `last_map: zm_transit`. Farm and Bus Depot have the same engine map with their respective variant slugs. This evidence does not indicate an engine-map change; the engine identifier alone cannot distinguish the variants.
**Cause and scope**
- `src/lib/map-aliases.ts:38-61` defines TranZit, Town, Farm, and Bus Depot as separate selections sharing `zm_transit`.
- `src/lib/ui/server-labels.ts:9-16` resolves a canonical map by its first matching entry, translating `zm_transit` to TranZit without variant context.
- `src/lib/fleet-overview.ts:69-90` uses the selected variant when it matches the observed engine map. `src/routes/+page.svelte:575` passes that resolved name as the card heading.
- `src/lib/ui/components/ServerCard.svelte:79-80` independently applies the generic lookup and compares the resulting display text with the heading. Town Survival and TranZit differ, so `:154-160` renders the misleading line. Empty compact cards hide it, explaining why only occupied Town lobbies showed it in the reported screenshot.
The fleet list and server-detail scoreboard already use the variant-aware fleet identity. A related fallback also needs coverage: when the variant is unknown, the generic lookup silently chooses TranZit. Conversely, an actual change to a different engine map currently changes the fleet identity and removes the old selection's launch shortcut; preserve that behavior.
**Screenshots**
Same synthetic Town lobby and data. The after image is a DOM mockup that removes the misleading duplicate line, not an implemented fix. Production data and application source were not modified.
Before:

After (mockup):

**Fix**
- [x] Use consistent, variant-aware map resolution for the fleet card heading and any Current map/Last map context. Do not interpret different friendly labels for the same selected engine map as a map change.
- [x] For known Town, Farm, and Bus Depot selections reporting `zm_transit`, retain their Survival names and omit the redundant TranZit line. Keep an explicitly selected TranZit server named TranZit.
- [x] When a shared engine map has no recognized variant, show an explicit ambiguous/raw-map fallback rather than asserting that the mode is TranZit.
- [x] Preserve genuine engine-map changes: display the observed map and keep the previous selection's launch shortcut unavailable. Do not force the configured Survival name onto a different reported engine map.
- [x] Preserve compact empty-card behavior and Current/Last wording wherever additional map context remains useful.
- [x] Add rendered-card regressions for all four `zm_transit` selections, custom server names with stored variant metadata, missing/unknown variants, compact versus expanded cards, stale observations, and a real map change such as `zm_transit` → `zm_tomb`. Verify reactive updates and consistency with fleet list/detail labels.
**Validation**
Reviewed main at `272055a`. Reproduced the Town label in a real browser against a disposable fixture and verified that its detail scoreboard says Town Survival. Exercised map resolution for Town, Farm, Bus Depot, TranZit, Buried, an unknown variant, and a change to Origins. The two existing fleet-overview/server-card suites pass all 18 tests but do not cover the contradictory map line. Searched all 138 open and closed issues; no existing issue covers this label mismatch.
Reviewed current EC main at fa0baa8db5. Full application suite passed: 230 files, 3,120 tests, including migration-memory coverage; no failures or skips.
Python agent suite: 332 tests passed, no skips. Type/style checks: zero errors and warnings.
Validation is rendered-component coverage; the reused browser fixture had no Town cards available, so it was not counted as a browser reproduction of this fix.
Reviewed bcd3b99ee484a3b41a2c0453ff32df8791c05b86. All fix items are complete; closing this issue.
**Checklist**
- [x] **One map resolver.** ServerCard now uses `fleetIdentity`, with game/variant/mode metadata passed by the fleet page.
- [x] **All four selections.** Rendered-card tests retain Town/Farm/Bus Depot Survival and explicit TranZit labels without redundant map context.
- [x] **Ambiguous fallback.** `server-labels.ts:9` returns the raw engine map plus “variant unknown” when multiple selections share it.
- [x] **Real changes.** Tests switch from `zm_transit` to `zm_tomb`, show Origins, and remove the old launch shortcut.
- [x] **Compact/stale behavior.** Rendered tests retain compact empty cards and useful Current/Last wording.
- [x] **Reactive coverage.** `ui-server-card-maps.test.ts` exercises custom names, stored/missing/unknown metadata, stale/offline observations, reactive changes and shared card/list/detail labels.
**Review notes**
- Reviewed current EC main at fa0baa8db5f7629de3f58f2e6bf8da0568018be0. Full application suite passed: 230 files, 3,120 tests, including migration-memory coverage; no failures or skips.
- Python agent suite: 332 tests passed, no skips. Type/style checks: zero errors and warnings.
- Validation is rendered-component coverage; the reused browser fixture had no Town cards available, so it was not counted as a browser reproduction of this fix.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Expanded fleet cards for Town Survival, Farm Survival, and Bus Depot Survival can display “Current map: TranZit” beneath the correct Survival heading. The line suggests a different map or mode even when the reported engine map matches the server's selected variant.
Production verification on October 12, 2026 found both Town lobbies registered with
map_slug: town, configuredmap: zm_transit, and observedlast_map: zm_transit. Farm and Bus Depot have the same engine map with their respective variant slugs. This evidence does not indicate an engine-map change; the engine identifier alone cannot distinguish the variants.Cause and scope
src/lib/map-aliases.ts:38-61defines TranZit, Town, Farm, and Bus Depot as separate selections sharingzm_transit.src/lib/ui/server-labels.ts:9-16resolves a canonical map by its first matching entry, translatingzm_transitto TranZit without variant context.src/lib/fleet-overview.ts:69-90uses the selected variant when it matches the observed engine map.src/routes/+page.svelte:575passes that resolved name as the card heading.src/lib/ui/components/ServerCard.svelte:79-80independently applies the generic lookup and compares the resulting display text with the heading. Town Survival and TranZit differ, so:154-160renders the misleading line. Empty compact cards hide it, explaining why only occupied Town lobbies showed it in the reported screenshot.The fleet list and server-detail scoreboard already use the variant-aware fleet identity. A related fallback also needs coverage: when the variant is unknown, the generic lookup silently chooses TranZit. Conversely, an actual change to a different engine map currently changes the fleet identity and removes the old selection's launch shortcut; preserve that behavior.
Screenshots
Same synthetic Town lobby and data. The after image is a DOM mockup that removes the misleading duplicate line, not an implemented fix. Production data and application source were not modified.
Before:

After (mockup):

Fix
zm_transit, retain their Survival names and omit the redundant TranZit line. Keep an explicitly selected TranZit server named TranZit.zm_transitselections, custom server names with stored variant metadata, missing/unknown variants, compact versus expanded cards, stale observations, and a real map change such aszm_transit→zm_tomb. Verify reactive updates and consistency with fleet list/detail labels.Validation
Reviewed main at
272055a. Reproduced the Town label in a real browser against a disposable fixture and verified that its detail scoreboard says Town Survival. Exercised map resolution for Town, Farm, Bus Depot, TranZit, Buried, an unknown variant, and a change to Origins. The two existing fleet-overview/server-card suites pass all 18 tests but do not cover the contradictory map line. Searched all 138 open and closed issues; no existing issue covers this label mismatch.Reviewed
bcd3b99ee4. All fix items are complete; closing this issue.Checklist
fleetIdentity, with game/variant/mode metadata passed by the fleet page.server-labels.ts:9returns the raw engine map plus “variant unknown” when multiple selections share it.zm_transittozm_tomb, show Origins, and remove the old launch shortcut.ui-server-card-maps.test.tsexercises custom names, stored/missing/unknown metadata, stale/offline observations, reactive changes and shared card/list/detail labels.Review notes
fa0baa8db5. Full application suite passed: 230 files, 3,120 tests, including migration-memory coverage; no failures or skips.