Cook millet and bulgur separately.
Heat oil in a large saute pan over medium heat. Add shallots, celery, and garlic, and cook, stirring often, until tender, about 5 minutes. Add mushrooms, and cook, stirring often, until tender, about 5 minutes. Add chestnuts and herbs, and cook, stirring occasionally, for 3 minutes.
Slowly add stock, scraping bottom of pan. Raise heat to medium-high, and simmer for 5 minutes. Stir in cranberries, and simmer for 3 minutes. Add the millet, bulgur, salt, and pepper, and cook, stirring, until heated through. Serve immediately, or cover and refrigerate for up to 1 day (bring to room temperature or warm gently over low heat before serving).