plugin_quarantinecontract check — report plugins skipped at mount.
WhenApp.mount calls plugin.register(app, prefix)and that call raises,
the plugin is quarantined (skipped) so one broken plugin cannot abort boot.
Each quarantine is recorded as aPluginQuarantineon the app's mutable
state; this check surfaces them as ERROR contract issues — mirroring the
MountAppSkip -> mount_app_mergeprecedent — so the operator gets a
deploy-blocking signal viaapp.check() / chirp check --deployeven
though boot itself stayed alive.
ERROR is the fixed default: a quarantined plugin means a half-configured app
(missing routes, middleware, hooks the plugin would have registered). Fix the
plugin'sregister()so it no longer raises.
contracts.rules_plugin_quarantine
| 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
check_plugin_quarantine
function
def check_plugin_quarantine(quarantines: list[PluginQuarantine]) -> list[ContractIssue]
Emit one ERROR issue per quarantined plugin.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
quarantines
|
list[PluginQuarantine]
|
— |
View source · /home/runner/work/chirp/chirp/site/../src/chirp/contracts/rules_plugin_quarantine.py:1