We got two State of the Union speeches in one tonight. One, laying out President Obama’s domestic policy initiatives, was detailed, specific, fact-filled, forward-looking, ambitious and replete with a certain swagger. The other, on foreign affairs, not so much.

Obama and his advisers clearly believe they have the wind at their back, with the president’s approval numbers finally rising as the economic recovery gains steam. Closing tax loopholes for the rich, providing free community college, helping families afford child care and requiring that workers be allowed to earn paid sick leave all sound great to me, although Republicans reacted with stony silence. At a minimum, Obama set out a progressive agenda whose items can be ticked off when Democrats have the votes to do it.

The president, at times, also managed to recapture the soaring lyricism of his campaign speeches and some of the brio of the days when his party controlled Congress. His acknowledgement of his own flaws and his call for “a better politics” that goes beyond “arguing past each other on cable shows” must have drawn amens. His ad-libbed reminder that he won the last two presidential elections was probably the line of the night.

Obama made only a glancing reference to the racial controversies that followed the police killings in Ferguson, Mo., and Staten Island. Some of his most loyal supporters may be disappointed that he did not address the “Black Lives Matter” issue more directly and at greater length. Experience suggests, however, that whatever he said or didn’t say about race would likely be misconstrued. And he did mention the issue, if somewhat obliquely, without the race part.

That was the domestic speech, and it was quite good. The foreign policy speech will have to wait for another day.

He declared the Afghanistan war over, which is great, and repeated his promise to “degrade and ultimately destroy” the Islamic State. Will the pro-Western Afghan government survive? How does he intend to proceed in Iraq and Syria? He was right to call for Congress to pass a resolution authorizing the use of force against the Islamic State, but said nothing specific about what that legislation should say. Obama said we are already stopping the terrorist militia’s advance, which will come as news in parts of Syria. The president mentioned “Russian aggression” but not the explicit fact that Crimea has been snatched away from Ukraine, apparently permanently. We heard very little about Iran, given the stakes.

“The shadow of crisis has passed, and the State of the Union is strong,” Obama said. He’s right about the domestic outlook, but when I look around the world I see an awful lot of dark clouds.