FarmOps
CHANGELOG // May 13, 2026

What's New - May 12, 2026

-- Hive Planner: major UX overhaul --

New: top-level modes

  • Place / Assign / View / Map modes split the toolbar so each task has only the controls it needs
  • View mode is fully read-only, share a plan without anyone accidentally moving an HQ
  • Loading an empty plan now drops you straight into Map mode so the Starting Point wizard greets you

New: Map mode + Starting Point wizard

  • "Where is your AC / Marshal Guard?" wizard anchors the grid for new plans, no more typing center coordinates by hand
  • World coordinates are clamped to [0, 999] on both axes; edge labels no longer show "−1"
  • Wizard now has a map size selector (120 / 240 / 360), pick mega-hive sizes up front instead of resizing later
  • A coordinate you type lands exactly where you typed it. Previously an MG entered at (50, 50) could render at (60, 60) near the edge

New: drag-and-drop member assignment

  • Drag members from the sidebar roster directly onto HQs
  • HQ → HQ swap by dragging between tiles
  • Reset Assignments is now a single undoable action

Sidebar / member ranking

  • New Power / Kills / THP segmented control sorts the member list high-to-low by the metric you care about. Both Available and Assigned sections honor it
  • Auto-Assign seeds its ranking from the same metric you have selected
  • "Auto-fill HQs" trigger lives in the sidebar, next to the metric selector
  • Orphaned HQ assignments (member left the alliance) now show up in italic / amber so you can clear them, instead of silently disappearing

Auto-Assign Members dialog

  • Accepts either Alliance Center or Marshal Guard as the anchor; defaults to AC, and shows a selector when both exist
  • Dropped the misleading "Leave extra HQs unassigned" toggle, partial assignment is now the default behavior (one member per HQ)

Auto-Generate Hive Layout dialog

  • Rewritten description explains ring-packing and the optional auto-fill
  • Rank by selector mirrors the assign dialog
  • Auto-assign members switch lets you place HQs without an assignment pass

Minimap

  • Minimap is now visible at every grid size (was previously gated to ≥ 200) and supports drag-to-pan in addition to click. Releasing the mouse outside the minimap still ends the drag cleanly.
  • Minimap drag no longer paints/pans the main grid underneath

Coordinate labels match the in-game map

  • Building labels now show the center world coordinate, the cell the game itself displays, instead of the top-left anchor. An AC typed at (50, 50) now reads "50, 50" instead of "46, 54"
  • Sidebar HQ lists (alliance, color, assigned) all use the same center-coord display

Quality-of-life fixes

  • Page no longer scrolls past the toolbar, grid stays anchored in its slot on the dashboard
  • Member-assignment popover no longer steals wheel events, so scrolling the member list no longer zooms the grid
  • Search auto-pan fires once per query change; placing entities afterwards no longer snaps you back to the search target. The highlight ring stays.

Internationalization

  • Arabic: unified "Marshal Guard" term across the feature
  • Arabic: reset-assignments confirmation now uses proper plural forms (zero/one/two/few/many/other) instead of the awkward "عضو(أعضاء)" parenthetical

-- Public REST API --

Documented THP routes

  • GET /api/v1/alliance/members/thp: export Total Hero Power history
  • POST /api/v1/alliance/members/thp: import THP history
  • Both are in the OpenAPI spec and the regenerated Postman collection
  • thpHistory is now included in the /api/v1/alliance/export full snapshot, so a single export captures it alongside power and kills