In David Marker's Model Theory: An Introduction, Exercise 2.5.20, he gives the ultrafilter/ultraproduct based proof of the Compactness theorem. I am concerned with a small detail of the proof.
Is there a small error in part (a)? Technically, a set $Y$ is in $D$ if and only if $Y$ extends $X_\phi$ for some $\mathcal{L}$-sentence $\phi$. So all $Y$ have some $X_\phi$ as a subset - where $X_\phi$ is the whole set of all finite theories containing $\phi$. By my reasoning, then, every $Y \in D$ must, for some $\phi$, contain all finite theories $\Delta$ that contain $\phi$.
So, choose $A$ and $B$ in $D$; then for some $\phi_1$ and $\phi_2$, \begin{equation} X_{\phi_1} \subset A \subset I \end{equation} \begin{equation} X_{\phi_2} \subset B \subset I \end{equation} So the intersection of $A$ and $B$ must contain $X_\psi$ for some $\psi$, but why is $A \cap B$ guaranteed to contain this, and what would $\psi$ be? I was thinking of $\psi = \phi_1 \land \phi_2$ because $A \cap B$ contains every finite theory that contains both $\phi_1$ and $\phi_2$, but just because a theory contains $\phi_1$ and $\phi_2$ doesn't mean it contains $\phi_1 \land \phi_2$, because there's nothing mentioned about taking logical completion and that doesn't make sense in this context. The proof on ProofWiki is slightly different than this one so I was wondering if this was a bug.

You're right. Interestingly, Marker has in his the errata that in the rest of the exercise you're supposed to work with the filter generated by $D$. So, as noted by Alex Kruckman, you just need to show that $D$ has the finite intersection property, which is not very difficult: in the case of the op, $A \cap B$ is not empty, since it contains $\{\phi_1, \phi_2\}$. As noted by Alex in his comments, this clearly generalizes for every finite intersection.