I like the concept of Environment, but Howard did broke it by introducing cloak/decloak. You would think you could just add new environmental service in the filter or somewhere else and assume it would be available everywhere during rendering of the request, but it is not true, cloaking will hide all your services without warning, and you end up spending your time trying to figure out why did it disappear.
The cloaking is only used in the AjaxPartialResponseRenderer, I assume it is there to simulate "clean" request when rendering multiple ajax responses in the one request. I would say it is possible to replace the cloak/decloak functionality with similiar save/restore functionality: instead of hiding the stack before rendering a new response it would be better to restore the state of the environment stack. What do you think? Denis
