Beginner / stable facade inventory¶
Historical facade inventory
This page is the historical FACADE-023 artifact. It records the 0.23-era beginner
facade as carried through the 0.66.x train; it is not the 1.0 stable inventory. Symbols listed under
Expanded stable tier (0.23) remain
compatibility-protected stable on the current 1.3.x train. Pin
uv sync from a checkout. Application users should install
hedron>=1.0.0 from PyPI; use uv sync for repository development.
For the current 1.3 contract, use the machine-enumerated
stable inventory and the canonical
@app.page / @app.view / @app.action roles documented in Hedron.
Owning gates: FACADE-023 (python scripts/check_stable_facade.py),
STABLE-023, INVENTORY-023. Decision: D-053 /
RFC-0056.
Rules¶
- Beginner apps import the golden-path surface from
hedron(and the module paths below for jobs / testing). - Alpha packages and
hedron.experimentalnames must not appear in this inventory. - Optional extras (
hedron[data],hedron[charts],hedron[jinja],hedron[auth], …) stay package-local — not root-stable via this facade. - Machine-checked block: fenced
textinventory under Inventory (machine-checked). Format:module:Nameormodule:Class.method.
Beginner imports (human table)¶
| Import | Role |
|---|---|
from hedron import Hedron, HedronRouter, Page, Text, html |
App + document (already minimal-stable) |
from hedron import Stack, TextInput, TextArea, SubmitButton, RefreshButton |
CRUD chrome |
from hedron import Form, CsrfField, Hx, FormField, FormErrors, Label |
Forms / CSRF |
from hedron import SecurityPolicy, SecurityHeadersPolicy |
Profiles / headers |
from hedron import DoubleSubmitCookieCsrf, SessionTokenCsrf, CsrfStrategy |
CSRF strategies |
from hedron import swap, swap_oob, retarget, redirect_htmx, Poll |
Fragments / polling UI |
from hedron.jobs import enqueue_durable, job_status_response |
Durable job HTTP helpers |
from hedron_core.jobs import JobBackend, JobStatus, JobHandle, JobState, set_job_backend, get_job_backend |
Job protocol |
from hedron.testing import AppScenario, assert_page_document, assert_fragment_body, assert_htmx_trigger, assert_hx_retarget, assert_oob_present, assert_hx_push_url, assert_hx_redirect, assert_hx_reswap |
App tests |
The 1.0 application facade uses app.page(...), app.view(...), app.action(...), and
app.include(...). Removed 0.67 spellings are reported by the static migration tooling.
On HedronRouter, declare FragmentRegion values and pass fragment_regions= to
@page / @view / @action.
Deny list (must not appear in inventory)¶
- Any
hedron.experimentalexport (job_status_sse_response,SseResponse, stream/WS/preload helpers, …) - Optional-integration root names from charts / notebook / MCP / Gradio / native
DataTable,DataEditor, dashboard/inference facades
Inventory (machine-checked)¶
hedron:Hedron
hedron:HedronRouter
hedron:Hedron.page
hedron:Hedron.view
hedron:Hedron.action
hedron:FragmentRegion
hedron:Page
hedron:Text
hedron:html
hedron:Stack
hedron:TextInput
hedron:TextArea
hedron:SubmitButton
hedron:RefreshButton
hedron:Form
hedron:CsrfField
hedron:Hx
hedron:FormField
hedron:FormErrors
hedron:Label
hedron:SecurityPolicy
hedron:SecurityHeadersPolicy
hedron:DoubleSubmitCookieCsrf
hedron:SessionTokenCsrf
hedron:CsrfStrategy
hedron:swap
hedron:swap_oob
hedron:retarget
hedron:redirect_htmx
hedron:Poll
hedron.jobs:enqueue_durable
hedron.jobs:job_status_response
hedron_core.jobs:JobBackend
hedron_core.jobs:JobStatus
hedron_core.jobs:JobHandle
hedron_core.jobs:JobState
hedron_core.jobs:set_job_backend
hedron_core.jobs:get_job_backend
hedron.testing:AppScenario
hedron.testing:assert_page_document
hedron.testing:assert_fragment_body
hedron.testing:assert_htmx_trigger
hedron.testing:assert_hx_retarget
hedron.testing:assert_oob_present
hedron.testing:assert_hx_push_url
hedron.testing:assert_hx_redirect
hedron.testing:assert_hx_reswap
See also¶
- STABILITY.md — levels and expanded tier
- What’s ready — capability maturity (Supported ≠ whole matrix is stable)
- What’s new in 0.23
- Minimal form · HTMX interactions