Changelog¶
This page records user-visible changes for each published version.
Unreleased¶
0.1.0a15 — 2026-09-08¶
Changed¶
- The optional Admin editor now exposes one Format and Validate action. It applies conservative formatting first and then validates the resulting Ace buffer. When formatting is unsafe, validation still runs against the unchanged source and reports both outcomes independently.
0.1.0a14 — 2026-09-08¶
Added¶
- Validate source now checks statically visible HXML elements, attributes,
required attributes, and literal enumerations against the selected XSD catalog,
including project
EXTRA_SCHEMAS. Dynamic values remain deferred to full rendered-response validation, and incomplete static analysis is reported as a warning rather than a false success.
0.1.0a13 — 2026-09-08¶
Added¶
- Validate source in the optional Admin editor checks an unsaved template name and source without context, rendering, persistence, or revision changes. It reports safe source diagnostics and Django syntax line numbers when available.
Removed¶
- The experimental static Admin template preview and its server-configured scenarios. Template authoring keeps the Ace editor, formatter, schema-backed completion, and publication validation.
0.1.0a12 — 2026-09-08¶
Added¶
- Opt-in Admin template preview with configured example-data scenarios, unsaved draft rendering, structured diagnostics, and an isolated static web view. Preview is disabled by default, keeps the editor buffer unchanged, and never publishes a template.
Fixed¶
- Static preview now applies styles declared at document level and refreshes visual warning state when selecting another screen.
0.1.0a11 — 2026-09-08¶
Upgrade notes¶
- Django
FileBasedCacheand its subclasses are rejected because their non-atomicadd()cannot protect invalidation barriers. Configure a compatible backend or disable Hyperview caching;bypassdoes not suppress this error. See cache migration guidance. bulk_create(update_conflicts=True)now raisesNotSupportedErrorbefore consuming input or writing. Normal inserts andignore_conflictsremain supported; use publication services for updates.- Run the read-only
check_hyperview_templates --database ALIAScommand only on authorized databases before deployment. Invalid names, incorrect identities, or duplicates require a backed-up, human-reviewed repair, not an automatic migration. See historical integrity checks.
Added¶
- Opt-in
SCHEMA_PROFILE="compatible-0.110.0"permits percentages in the nine style margin attributes without broadening unrelated types. The defaultupstream-0.110.0and standalone upstream helpers retain their existing meaning. Validation and autocomplete use the selected profile together. See custom schemas. - The package README and documentation landing page now link to HyperTodo, the maintained Django and Expo test application.
Fixed¶
- Declaration scanning is linear, including unclosed Django delimiters; only raw template sources interpret Django comments. Rendered XML retains its independent safety checks and escaping. See XML security.
- An initial BOM no longer conceals incompatible XML encoding declarations; valid UTF-8 BOM content remains unchanged.
- Filesystem permission and I/O failures remain
SourceUnavailableon Python 3.14 instead of selecting a lower-priority template. See filesystem sources. - Read-only Admin users can view templates while the Ace editor is enabled.
- HXML formatting preserves meaningful whitespace, mixed content, CDATA,
preformatted text and Django syntax, including
blocktranslateandblocktransbodies; ambiguous input remains unchanged. See Admin authoring. - Nested deletions use both database alias and primary key when tracking invalidations; commit and rollback keep their existing guarantees.
- Generator-based
update_fieldsis consumed once without dropping fields. - Extra XSDs reject
xs:override; only the fixed bundled compatibility adaptation uses it. Validation and completion both inspect transitive local references before reusing dependency-aware caches. See schema safety. - The compatibility runner enforces lines ≥95% and branches ≥95% separately after combining base and Admin coverage, while retaining the combined gate. Missing, malformed and stale reports cannot pass. See testing.
0.1.0a10 — 2026-09-07¶
Added¶
ADMIN.PERMISSIONas an authoritative callable or dotted-path policy for stored-template creation, changes, and deletion, with a superuser-only default.- Detailed custom-schema guidance for project-owned namespaced HXML elements, validation, and editor autocomplete.
Changed¶
- The HXML Ace editor now fills the available Django 5.2 and Django 6.1 admin form width instead of collapsing to its gutter inside the admin flex layout.
Security¶
- Template mutation callbacks grant access only when they return the literal
boolean
True; import problems fail system checks and runtime failures deny access.
0.1.0a9 — 2026-09-07¶
Added¶
- A versioned Hyperview 0.110.0 XSD registry, provenance, checksums, and a deterministic completion catalog.
- Optional
[schema]support for XSD 1.1 validation of rendered documents and fragments, including project-owned custom schemas. - An optional
[editor]profile with a CSP-safe HXML Ace editor, contextual completion, Django-template highlighting, safe formatting, and theme-aware presentation. - Safe line and column coordinates on
TemplateValidationErrorwhen available.
Changed¶
- Database publication now compiles Django template syntax before any write or revision increment, without rendering context-dependent output.
- Schema and catalog caches now follow settings and local-file fingerprints.
- CI now tests editor JavaScript on Node 24 and smoke-tests base, schema, and editor wheel profiles.
Security¶
- Custom schemas reject remote references, local-root escapes, and incompatible duplicate declarations.
- The admin catalog endpoint requires authentication and model view permission; editor assets are local and avoid inline scripts.
0.1.0a8 — 2026-09-06¶
Added¶
- First-class eager and lazy fragment responses with the
application/vnd.hyperview_fragment+xmlmedia type. - A PEP 561
py.typedmarker and the publicdj_hyperview.__version__value. - A standalone Expo and Hyperview mobile Getting Started guide.
Changed¶
- Hardened database publication, byte-exact identity handling, legacy-row recovery, mutation routing, and transaction-aware invalidation.
- Isolated the package template engine from unsafe consumer engine options.
- Preserved cache-safe source results across mixed source chains.
- Reported absent source configuration and missing filesystem roots as actionable Django system-check warnings.
- Reused validated settings and the default rendering engine until a dependent Django setting changes.
- Rejected unsafe
bulk_create()names and invalidated cache state after bulk writes, including conflict updates.
Compatibility¶
- Tested against Django 5.2 and Django 6.1 on supported Python versions.
- Fragment update endpoints must return a bare client-safe element. Full HXML
documents continue to use
application/vnd.hyperview+xml.