3.13.140
3.13.140 — 2026-09-28
The crud generator stops double-pluralising: a Category resource now writes categories for its route and template names, not categoriess. SQLite path resolution is hardened -- a relative database path that would escape the project root is refused, and any missing parent directories are created 0775 (ADR-0086). The async database layer asks for the running event loop through a supported check instead of a private call, and the connection-pool default is now written down (ADR-0074). Two continuous-integration gates land: a doc-drift audit that fails the build when the packaged CLAUDE.md or the AI skills describe an API the code does not have, and generator-parity coverage that keeps the crud output honest. Alongside them the CLAUDE.md CRUD example is corrected, the web-push skill mirrors are synced to their canonical source, and the http-hardening module is un-ignored so its tests actually run (tina4-python#170). The AI-skill stale-check resolves correctly and warns on addGlobal closures (skill 90/91). The framework still has no required runtime dependencies.