6.7 KiB
Changelog
All notable changes to the Rustelo project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
- Website templates + generator (2026-05-28): Two render-mode project templates and an interactive generator, modelled on the living jpl-website site.
templates/website-htmx-ssr/,templates/website-leptos/— sanitized snapshots produced by a reproducible extractor (scripts/generator/extract-template.nu): rsync + prune + binary-safe sanitize + seed overlay; neutralwebsite-*crate names; deploy identity defaults toexample.comwith aTEMPLATE-SETUP.mdchecklist. Both carry the full workspace (render profile is a build concern: features + cfg + Dockerfile +rendering.ncl).scripts/generator/new-site.nu+templates/options.ncl+just site::new— interactive (or--config/--yes) wizard: picks the template via thetemplates.jsonregistry (now carryingrender_mode), creates the site as a framework sibling, renames crates to the project, sets domain, and stamps ontoref onboarding. Verified: a generated site's fullcargo metadataresolves ~700 packages via../rustelo.scripts/generator/onto-onboard.nu+templates/_ontoref-skeleton/— ontoref onboarding levels (full/minimal/none) that delegate ontology scaffolding toontoref setupand write a.rustelo.ontorefdomain pointer (reference, not embed).templates/shared/public/scripts/— htmx-ssr integration glue promoted from jpl-website (htmx-reinit.js,reinit-handlers.js,theme-init.js,highlight-utils.js,tag-filters.js); the htmx library + extensions already lived undertemplates/shared/htmx/.just site::extract— re-snapshot both templates from the living model.
- ADR-006 — Rendering Profile Axis: HTMX-SSR Coexisting with Leptos Hydration.
- ADR-007 — Website Templates as Reproducible Snapshots + a Generator that Delegates (snapshot model, neutral crate names, delegated ontoref onboarding, self-contained trees superseding init.rs assembly).
Removed
-
Obsolete Leptos-only templates (basic/cms/content-website/enterprise/minimal/website-full) removed from
templates/and the registry;just site::newis the single scaffolding path. A reference copy of the old trees is kept under.coder/archive/templates/. -
Legacy
cargo rustelo initscaffolding removed fromrustelo_cli: deletedcommands/init.rs,templates.rs,commands/remote.rs,embedded.rs, theCommands::Initvariant + match arm, and the now-orphanedgeneratefeature (+ optional deps tera/quote/syn/proc-macro2). The remainingcargo rustelocommands (build/dev/update/assets/pipeline/cross) are unchanged. Verified:cargo check -p rustelo_cliandcargo clippy -p rustelo_cli --no-deps -- -D warningsboth clean. -
Framework landing (
assets/web/src/index.html) updated to present both render modes (added a "Two Render Modes" card). -
Architecture Self-Description (on+re): Integrated Ontoref protocol across framework and implementation
.ontology/core.ncl— knowledge graph with axioms (config-driven, language-agnostic, no-framework-forks), tensions, and practices (build-time codegen, custom routing, layered override, plugin architecture, auth framework, component library, page library, feature system, CSS theme system).ontology/state.ncl— state dimensions tracking framework-maturity (feature-complete → api-stable), plugin-system (L5 → L8), template-system (designed → operational).ontology/gate.ncl— four architecture membranes: routing-integrity (Closed), code-quality (Closed), configuration-driven (Low permeability), framework-boundary (Closed).ontology/manifest.ncl— Library manifest with Developer, Downstream, and Agent consumption modes; framework-core, templates, features, and self-description layersreflection/— backlog, constraints, defaults, qa, schema, and operational modes (integrity-check, sync-ontology, validate-pap)
-
ADR System: Four Architecture Decision Records in typed Nickel NCL with contract validation
adr-001— Build-Time Code Generation Pattern (include!(concat!(env!("OUT_DIR"), ...)))adr-002— Custom Routing System over Leptos Routeradr-003— Layered Override System (Local > Feature > Template > Framework precedence)adr-004— Compile-Time Plugin Architecture (Level 5) with documented Level 8 upgrade pathadr-005— Auth Framework as Hexagonal Port over Foundation (rustelo_authre-exports fromrustelo_core_lib::auth; constraints: consumers-use-port, no-auth-impl-in-framework-crate)
-
on+re migration (2026-04): Ontology updated to reflect current codebase state
core.ncl— artifact pathsite/config/corrected toresources/nickel/routes/;auth-frameworkdescription updated to hexagonal port;unified-template-systemupdated (CLI wired)state.ncl—template-systemandframework-maturityblockers/catalysts updated
Fixed
- rustelo_server: Resolved 302 compilation errors after dependency updates
- Removed duplicate module declarations (
auth,content) in lib.rs - Fixed incorrect imports:
rand_rustelo_core_lib→rand_core - Fixed incorrect imports:
rustelo_client→clientin email providers - Removed non-existent
rustelo_utilsimport from version_control module - Corrected RBAC module paths:
rbac_config→config,rbac_service→service - Added missing tower-http features:
corsandtracein Cargo.toml - Implemented
Displaytrait forResourceTypeenum in rustelo_core_lib - Fixed clippy warnings: unused variables, redundant closures, needless borrows
- Fixed trailing whitespace in all source files
- Removed duplicate module declarations (
Changed
- Temporarily disabled RBAC module (requires refactoring)
- All workspace crates now compile with zero clippy warnings in strict mode (
-D warnings) - Code formatted with
cargo +nightly fmt
0.1.0 - Initial Release
Added
- Initial Rustelo framework architecture
- Modular workspace with 17 crates
- Foundation layer (core-lib, components, pages, client, server)
- Framework layer (core, auth, content, web, cli)
- Feature-based architecture with cargo features
- Language-agnostic routing system
- Configuration-driven content management
- Authentication support (JWT, OAuth2, 2FA, RBAC)
- Database abstraction (PostgreSQL, SQLite)
- Email system with multiple providers
- Cryptography utilities (AES-GCM)
- Content processing (Markdown, templating)
- Development tooling and CLI