query-revision-auto-snapshot-wired-into-service-update-not-route

R-Dash M9 QueryRevision auto-snapshots are triggered inside QueryService.update() at the service layer, not in the route handler. This ensures versioning is consistent regardless of which code path triggers an update (API route, admin console, AI agent mutation). Service-layer snapshot placement is the correct abstraction boundary for audit-safe versioning.