Changelog ¶
Unreleased — initial experimental framework ¶
Made accounts and formsets standard project defaults; added offline
makemigrationsandgeneratequeriesmanagement commands from the shared model registry.Consolidated migration application, planning, verification, adoption and recovery on the recorded-history runner. Removed the separate
database.Migrate/Migratorexecutor; existing Goose histories require verified adoption.Preserved first-party handwritten SQL with reviewed historical manifests and verified legacy serial/unique/timestamp-default support. Updated application guides and installable contracts to describe core defaults.
Breaking: renamed Yutqin to Cicadel, including Go modules and packages, CLI executables, environment variables, generated artifacts, cache paths, and framework-owned database identifiers.
Added typed installable runtime model catalogs with explicit app/table/type ownership, offline validation and isolated discovery. Recorded migrations remain authoritative.
Completed application foundation tooling: all operational settings overrides and redacted diagnostics, sorted command help and exit statuses, structured/deployment checks, and safe component/CSS rebuild/restart through
cicadel dev. Added generated-executable and reload acceptance tests; seedocs/foundation.md.Added a green-and-black Tailwind default theme and optional
startproject --accountsbrowser starter with compiled login/recovery/reset/account/password-change pages, CSRF protection, PostgreSQL cookie sessions and shared account revocation.Added SMTP with verified STARTTLS/implicit TLS, batch connection reuse, MIME alternatives and attachments, CC/BCC, reply-to and console/file/capture/discard backends.
Added named logging configuration with levels, filters, propagation, JSON/text/custom handlers, file rotation, optional error email, grouped credential redaction, correlated panic records and private GORM timing.
Reconciled current authentication, component, PostgreSQL migration, mail and logging documentation; administration remains a separate later battery.
Completed standalone typed forms and accessible widgets; added revision-based stale-edit detection, bounded upload fields with compensating cleanup and multipart CSRF integration, and atomic model-form/formset administration. See
docs/forms-completion.md.Added core
contrib/formsets: bounded related-row collections with scoped identities, add/delete limits, parent locking, transactional hooks and atomic saves; added the coreForm.InTransactioncomposition API.Added
forms/model: explicit GORM field allowlists, typed binding, scoped relationship checks, authorized row-locked updates, safe constraint errors and transactional validation/save hooks. Verified with PostgreSQL concurrency and rollback tests; seedocs/model-forms.md.Added the installable-app foundation: manifests, API/dependency compatibility checks, namespaced commands/checks/resources, route-scoped middleware and per-host startup/cleanup.
Added
startpackage, generatedproject/apps.go,manage.go apps, andapptest.Check; tested independent Go-module install/upgrade/removal and PostgreSQL migration/data retention.Implemented React/Cotton-inspired compiled component UI; retained legacy Go templates for compatibility and completed the component-engine acceptance checks.
Added a source-linked Django battery inventory with explicit support decisions and completion criteria.
Reclassified existing integrations as partial batteries; model-driven PostgreSQL migrations now have a documented supported subset, other database backends are excluded, and broader package-system contracts remain planned.
Removed the experimental native
localepackage; i18n/l10n and GIS are third-party-only by design.Django-familiar project/app scaffolding, typed settings, explicit app registration and management commands.
Standard HTTP routing with namespaced reversal, escaped embedded templates, response helpers and static assets.
PostgreSQL/GORM integration and locked, versioned Goose migrations.
Sessions, password primitives, CSRF protection, bounded forms and explicit authorization.
Working articles and catalog/admin examples with real HTTP/database tests.
API helpers, mail transport/capture, bounded storage/cache, observability hooks and River jobs.
PostgreSQL integration/race tests, fuzz targets, generated-project validation, vulnerability checks and performance baselines.
Requires Go 1.26.10+ to incorporate standard-library security fixes. No upgrade migration is required from a prior Cicadel release because none has been published by this implementation.