middleware.layout_debug

Page actions AI-ready formats and sharing
Open LLM text
Share with AI
Ask Claude Ask ChatGPT Ask Gemini Ask Copilot

Layout chain and route contract debug middleware.

When config.debug is True, adds X-Chirp-Layout-* and X-Chirp-Route-* headers to help diagnose layout resolution and route contract metadata.

Also emitsX-Chirp-Render-Planwith a base64-encoded compact…

Layout chain and route contract debug middleware.

When config.debug is True, adds X-Chirp-Layout-* and X-Chirp-Route-* headers to help diagnose layout resolution and route contract metadata.

Also emitsX-Chirp-Render-Planwith a base64-encoded compact JSON snapshot of the render plan for consumption by the HTMX debug tray.

middleware.layout_debug

Name Type Default Description
type —
qualified_name —
element_type —
description —
source_file —
line_number —
is_autodoc —
autodoc_element —
_autodoc_template —
_autodoc_url_path —
_autodoc_page_type —
title —
doc_content_hash —

Symbols on this page

set_layout_debug_metadata
function
def set_layout_debug_metadata(request: Request | None, chain: str, match: str, mode: str) -> None

Store layout chain metadata on the request for the layout debug middleware.

Parameters

Name Type Default Description
request Request | None —
chain str —
match str —
mode str —
_build_render_plan_payload
function
def _build_render_plan_payload(request: Request) -> dict | None

Build a rich render plan payload from the stashed RenderPlan.

Uses the publicget_render_plan()API to access the frozen RenderPlan object, producing a richer payload than the old compact snapshot (which was capped at 20 context keys and ~2 KB).

Parameters

Name Type Default Description
request Request —
_compact_render_plan
function
def _compact_render_plan(plan: dict) -> dict

Trim a render plan snapshot to header-safe size (~2 KB).

Fallback used when the frozen RenderPlan is not available.

Parameters

Name Type Default Description
plan dict —
LayoutDebugMiddleware
class

Middleware that adds X-Chirp-Layout-* and X-Chirp-Route-* headers when config.debug.

View source · /home/runner/work/chirp/chirp/site/../src/chirp/middleware/layout_debug.py:1