Citation: 1B_26/2017 E. 4

Il s'ensuit que le recours est admis. L'arrêt attaqué est annulé et la cause est renvoyée à l'autorité précédente pour nouvelle décision au sens des considérants. Au regard des considérations précédentes (cf. consid. 3.4), l'admission du recours n'entraine toutefois pas la libération immédiate du recourant; la cour cantonale est cependant invitée à procéder rapidement (art. 5 al. 2 CPP). Le recourant, assisté par un avocat, obtient gain de cause. Il y a dès lors lieu de lui octroyer des pleins dépens à la charge du canton de Vaud pour les procédures fédérale et cantonale (art. 68 al. 1 et 5 LTF); sa demande d'assistance judiciaire est ainsi sans objet. Il n'est pas perçu de frais judiciaires pour les procédures fédérale et cantonale (art. 66 al. 4 et 67 LTF). Par ces motifs, le Tribunal fédéral prononce :