use_min_max_rules=True (default) now runs full SP-API recalc; only use_min_max_rules=False keeps manual prices and refreshes profit only (aligned with FBM).
FBA sync overrides min/max target_price and hazmat from Sellerlogic per marketplace and drops countries absent from the API response (e.g. PL/SE removed when only DE/NL/ES are returned).
Per-country ignore flags are preserved when a marketplace still exists after sync.
Recalc/sync logging lists target, processed/updated, and skipped marketplaces for easier debugging.
JSONB international_pricing updates use flag_modified so profit/price changes persist reliably.
Backend (FBA / FBM recalc endpoints):
Single-SKU POST /recalculate/{sku}awaits completion and returns the result; all still runs in the background.
On finish, WebSocket sends task_status (inactive) plus item_update (recalculated) for single-SKU jobs.
Backend (workflows):
Base sync/UVP background jobs clear recalc and export flags in separate phases (export only active during export).
FBA recalc always sends task_status finish (including early exits such as missing credentials).
Frontend:
FBA/FBM tabs subscribe to WebSocket task finish and item_update events and reload articles/stats when recalc completes.
βRecalc allβ no longer reloads immediately on API return; refresh happens when the job actually finishes.
Task status WebSocket keys normalized consistently with the backend (recalculate β recalc).