test(http): pin the request isolation of two sequential handle() calls
Acceptance test of stage 5: breadcrumbs do not accumulate, a controller answers the request it is serving, pagination follows the current page, the visitor facts do not survive the cycle, and the request stack returns to its boot entry. Records the rule for how a class gets the current request in .agents/architecture.md, and drops the last di(Request::class): FileStorage::saveFromRequest() takes the request as a parameter.
The comparisons take the body of the page, not the whole response: controllers call Render::addData() without a template list, which is shareWithAll(), so the head meta of one page stays in the engine for the rest of the process. That belongs to the Render rewrite, deliberately outside this stage.