app._suspense_dag

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

Private Suspense defer execution DAG compiled at the freeze boundary.

Extends Suspense block discovery + ancestor pruning into an explicit per-route execution DAG (nodes = defer keys / leaf blocks; edges = …

Private Suspense defer execution DAG compiled at the freeze boundary.

Extends Suspense block discovery + ancestor pruning into an explicit per-route execution DAG (nodes = defer keys / leaf blocks; edges =feeds/ couples). Stored on runtime state for concurrent resolution and the defer_couplingindependence contract (#949). Not a public return type or inspection API.

app._suspense_dag

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

_DeferKeyNode
class
_DeferBlockNode
class
_DeferEdge
class
_SuspenseRoutePlan
class

One route's compiled Suspense defer plan.

_SuspenseDeferDAG
class

Frozen Suspense defer execution DAG published with runtime state.

_SuspenseCallFact
class
_dedent_handler_source
function
def _dedent_handler_source(src: str) -> str

Normalize indentation soast.parseaccepts nested method bodies.

Parameters

Name Type Default Description
src str
_resolve_deferred_keys
function
def _resolve_deferred_keys(*, env: Any, template_name: str, template_source: str | None, context_keys: tuple[str, ...]) -> frozenset[str]

Choose compile-time defer keys for a Suspense call.

Prefer template self-declarations (is deferred/ pending-set membership). Fall back to Suspense kwargs that appear in blockdepends_onroots so sync-only kwargs (title=...) are not treated as defer nodes.

Parameters

Name Type Default Description
env Any
template_name str
template_source str | None
context_keys tuple[str, ...]
compile_suspense_defer_dag
function
def compile_suspense_defer_dag(*, router: Any, kida_env: Any | None, program: HypermediaProgram | None = None) -> _SuspenseDeferDAG

Compile Suspense route defer execution DAGs at freeze.

DiscoversSuspense(...)calls on route handlers, plans each with the same discovery + ancestor-pruning algorithm as runtime, and publishes an immutable route-indexed DAG.

Parameters

Name Type Default Description
router Any
kida_env Any | None
program HypermediaProgram | None None

View source · /home/runner/work/chirp/chirp/site/../src/chirp/app/_suspense_dag.py:1