"Edit tags" with 2+ selected cards opens a bulk editor showing per-tag coverage
(k/N), hydrated via getAssetsBatch. Enter adds a tag to all, x removes it from
all, clicking a partial tag completes it; actions go through the new
updateAssetsTagsBulk client in chunks of 500 ids with a progress toast, refresh
coverage from the response and dispatch mjr:asset-tags-changed per updated
asset. Workflow assets are excluded and reported as skipped. Single-card
behaviour unchanged.